如果我通过流加入几个字符串,但没有任何东西可以加入,结果是一个空字符串,如“”。如果它为空,是否可以添加默认值?例如。 “-”
someList.stream()
.filter(a -> a.getKey() != null)
.map(a -> a.getKey())
.sorted()
.collect(Collectors.joining(", "));
更新: 我知道还有其他方法可以做到这一点,但我只是想知道是否可以覆盖默认值“”(空字符串)
最佳答案
String result = someList.stream()
.filter(a -> a.getKey() != null)
.map(a -> a.getKey())
.sorted()
.reduce((a,b) -> a + ", " + b).orElse("-");
我们使用 reduce 而不是 collect 的地方。
编辑:第一个解决方案确实没有按预期工作。这是。
关于java - 流连接结果默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43391209/