我有一个函数,它创建一个int流,找到不同的字符,对它们进行排序,然后将它们收集到一个新列表中,然后创建一个字符串。下面是功能。
public static String longest(String s1, String s2) {
String s = s1 + s2;
return s.chars()
.distinct()
.sorted()
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
}
我真的很想弄清楚使用StringBuilder进行收集的工作方式,我在网上搜索过Java文档,但没有任何意义。据我所知,它创建了一个StringBuilder的新实例,并仅在流中附加了每个字符,任何人都可以给出更好的解释吗?谢谢
最佳答案
参数1:创建您的起始结果(在本例中为您的新StringBuilder
)。
参数2:将元素(String
)添加到结果(StringBuilder
)中。
参数3:如果并行运行流,将创建多个StringBuilders
。这是为了将它们组合在一起。