中间流操作未按计数计算
似乎我无法理解Java如何将流操作组合成流管道。
执行以下代码时
public
static void main(String[] args) {
StringBuilder sb = new StringBuilder();
var count = Stream.of(new String[]{"1", "2", "3", "4"})
.map(sb::append)
.count();
System.out.println(count);
System.out.println(sb.toString());
}
控制台仅打印 。该对象仍具有值 。4
StringBuilder
""
当我添加过滤器操作时:filter(s -> true)
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
var count = Stream.of(new String[]{"1", "2", "3", "4"})
.filter(s -> true)
.map(sb::append)
.count();
System.out.println(count);
System.out.println(sb.toString());
}
输出将更改为:
4
1234
这个看似冗余的筛选器操作如何更改组合流管道的行为?