我正在流上执行一些操作并返回一个数组列表.这工作没有问题,但我需要做最后一步,如果数组列表为空,添加一个元素(与options/nulls无关只是要求的一部分)我的方式有点笨重,我想知道它是否可以而是在流操作中完成?
public ArrayList<String> getArrayList () {
ArrayList<String> aL = setOfStrings.stream()
.filter(remove some)
.filter(remove some more)
.map(i -> createStringAbout(i))
.collect(Collectors.toCollection(ArrayList::new));
if (aL.size() < 1) {
aL.add("No items passed the test");
}
return aL;
}
Run Code Online (Sandbox Code Playgroud)
所以我真的想做
return set.stream()...
Run Code Online (Sandbox Code Playgroud)
这可能吗 ?
使用 collectingAndThen
.collect(Collectors.collectingAndThen(ArrayList::new, rs -> {
if(rs.size() < 1 ) {
rs.add("something");
}
return rs;
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
96 次 |
最近记录: |