collect()Stream 的方法是可变的归约。基于 Java 文档:
可变归约操作在处理流中的元素时将输入元素累积到可变结果容器中,例如 Collection 或 StringBuilder。
我尝试了以下方法,它编译没有问题。
Stream<String> stream1 = Stream.of("w", "o", "l", "f");
String word = stream1.collect(String::new, String::concat, String::concat);
System.out.println(word);
如果供应商是 StringBuffer,我会查看收集操作,因为元素将附加到提供的 StringBuffer。
由于 String 是不可变对象,可变归约在这里如何工作?它是否与每次实现累加器时创建新对象的reduce操作相同?
烙印99
相关分类