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