和几乎所有人一样,我仍然在学习新的 Java8StreamsAPI 的复杂性(并且喜欢它们)。我有一个关于数据流使用的问题。我将提供一个简化的例子。
JavaStreams 允许我们获取一个 Collection
,并使用其上的 stream()
方法来接收其所有元素的流。其中有许多有用的方法,比如 filter()
、 map()
和 forEach()
,它们允许我们对内容使用 lambda 操作。
我的代码看起来像这样(简化) :
set.stream().filter(item -> item.qualify())
.map(item -> (Qualifier)item).forEach(item -> item.operate());
set.removeIf(item -> item.qualify());
其思想是获取集合中所有项的映射,这些项匹配某个限定符,然后通过它们进行操作。在操作之后,它们没有进一步的用途,应该从原始集中删除。代码工作得很好,但我不能动摇的感觉,在 Stream
中有一个操作可以为我做到这一点,在一个单一的行。
如果是在 Javadocs 我可能会忽略它。
有没有更熟悉 API 的人看到类似的东西?