我想从字符串列表中删除一个空字符串。
这是我尝试过的,使用流 API:
list.stream().filter(item-> item.isEmpty()).collect(Collectors.toList());
之后,空字符串仍然存在于列表中。我错过了什么?
原文由 Alexander Nikolov 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想从字符串列表中删除一个空字符串。
这是我尝试过的,使用流 API:
list.stream().filter(item-> item.isEmpty()).collect(Collectors.toList());
之后,空字符串仍然存在于列表中。我错过了什么?
原文由 Alexander Nikolov 发布,翻译遵循 CC BY-SA 4.0 许可协议
自 java 11 以来,有一个新方法 Predicate::not 。
所以你可以这样写:
list.stream().filter(Predicate.not(String::isEmpty)).collect(Collectors.toList())
原文由 lczapski 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
filter()
保留 匹配谓词的元素。所以你需要逆谓词:这也不会修改原始列表。它将创建原始列表的过滤副本。所以你需要
如果你想修改原始列表,你应该使用
或者简单地