我想组合列表中的每两个字符串并使用 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());
要使操作并行,请将 .stream()
替换为 .parallelStream()
。根据您的输入大小,这可能会使操作变慢或变快。
关于java - Java 8 列表中 2 个字符串的每个组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42177054/