Java流的常见任务是清理输入数据,以便以后的步骤可以正常工作。 #1最常见的清除步骤可能是从集合中删除空值。
流使操作变得简单:
myCollection.stream()
.filter(Objects::nonNull)
.do.what.you.need
与经典方法比较:
while(myCollection.remove(null));
// do what you need, but you better not need that original list, because it's gone...
myCollection.removeAll(Collections.singleton(null));
// do what you need, but you better not need that original list, because it's gone...
像流方法一样,它们简短而有趣,但是与流方法不同,它们修改了原始列表。 第一个例子也很慢。
我喜欢流方法,因为我可以在过滤器任务之后链接其他任务,包括map
. sorted
, reduce
和更多!我发现传统的命令式迭代方法不仅更冗长,而且在概念上更难于遵循。