Java 8 Streams 可以对集合中的项目进行操作,然后将其删除吗?
2022-08-31 13:48:31
像几乎所有人一样,我仍然在学习新的Java 8 Streams API的复杂性(并且喜欢它们)。我有一个关于流使用的问题。我将提供一个简化的示例。
Java Streams 允许我们获取 一个 ,并使用它上面的方法来接收其所有元素的流。在其中,有许多有用的方法,例如 ,、 和 ,它们允许我们对内容使用 lambda 操作。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看到这样的东西?