【问题标题】:Every combination of 2 strings in List Java 8 [duplicate]List Java 8中2个字符串的每个组合[重复]
【发布时间】:2017-06-29 20:16:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: java lambda functional-programming java-8 java-stream


    【解决方案1】:

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

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

    Ideone Demo

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

    【讨论】:

      猜你喜欢
      • 2018-04-03
      • 2015-09-21
      • 2019-04-02
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      相关资源
      最近更新 更多