像几乎每个人一样,我仍在学习新的Java 8 Streams API的复杂性(并喜欢它们)。我对流的使用有疑问。我将提供一个简化的示例。
Java Streams允许我们采用Collection
,并stream()
在其上使用方法来接收其所有元素的流。在这,有许多有用的方法,比如filter()
,map()
和forEach()
,这让我们对内容的使用拉姆达操作。
我有看起来像这样的代码(简化):
set.stream().filter(item -> item.qualify())
.map(item -> (Qualifier)item).forEach(item -> item.operate());
set.removeIf(item -> item.qualify());
想法是获取集合中与某个限定符匹配的所有项目的映射,然后对它们进行操作。手术后,它们不再具有任何用途,应从原始设备中取出。该代码运行良好,但是我无法动摇一种感觉,Stream
即可以在一行中为我完成操作。
如果在Javadocs中,我可能会忽略它。
有谁更熟悉API,会看到类似的东西吗?