我想从字符串列表中删除一个空字符串。
这是我尝试过的,使用流 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 许可协议
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答761 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
filter()
保留 匹配谓词的元素。所以你需要逆谓词:这也不会修改原始列表。它将创建原始列表的过滤副本。所以你需要
如果你想修改原始列表,你应该使用
或者简单地