我有一个函数,它创建一个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。这是为了将它们组合在一起。

10-06 05:29
查看更多