Java 8 Streams可以在集合中操作一个项目,然后将其移除吗?
- 论坛
- Java 8 Streams可以在集合中操作一个项目,然后将其移除吗?
18 浏览
Java 8 Streams可以在集合中操作一个项目,然后将其移除吗?
就像几乎每个人一样,我仍在学习和喜爱新的Java 8 Streams API的复杂性。我有一个关于使用流的问题。我将提供一个简化的例子。
Java Streams允许我们获取一个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的人是否看到了类似的操作?