java - 使用 Stream API 对两个集合进行叉积

标签 java java-8 java-stream cross-product

我有两个列表:

List<Integer> list1 = ...
List<Integer> list2 = ...

我有以下类(class):

class Pair {
    public Pair(final Integer i1, final Integer i2) {
        ...
    }
}

是否可以使用 Java8 流将两个输入列表组合成一个 List<Pair> ?这可以通过双 for 循环轻松完成,但我想知道这是否适用于 Java8 流。

最佳答案

list1.stream()
     .flatMap(i1 -> list2.stream()
                         .map(i2 -> new Pair(i1, i2)))
     .collect(Collectors.toList());

关于java - 使用 Stream API 对两个集合进行叉积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32296210/

相关文章:

java - 如何比较 IBM RTC 中的两个流?

java - 将一个数组拆分为原始大小的 80% 和 20% 的 2 个较小的数组?

java - 如何强制复合索引出现在 Google Cloud 中?

java - 您如何对 Java 8 流中的对象列表求和

java - 用 Stream 填充 Map<String,Map<String,Integer>>

java - 对列表中的项目进行分组并对所有其他字段求和 Android,在 recyclerview 中显示结果

java - 房间内的光源出乎意料地起作用

java - jdbcTemplate setQueryTimeout 值类型

Java 8 Lambda : Two Interface with method have same number parameter

java - 为什么 Java8 flatmap 返回一个 List of List?