List Java 8 中 2 个字符串的每个组合



我想组合列表中的每两个字符串并使用java8流返回组合列表:

List<String> list;
Stream.concat(list.stream(), list.stream())
                    .collect(toList());

但是,此代码不生成组合,而只生成列表的元素。我做错了什么。我还希望此代码并行化,以便它可以在多个内核上运行

使用 flatMap 以组合方式组合字符串。每个字符串将与列表中的每个字符串连接。

List<String> combinations =
    list.stream()
        .flatMap(str1 -> list.stream().map(str2 -> str1 + str2))
        .collect(toList());

Ideone 演示

要使操作并行,请将.stream()换成.parallelStream()。根据您的输入大小,这可能会使操作变慢或变快。

最新更新