使用 Stream API 的两个集合的叉积
Cross product of two collections using the Stream API
我有两个列表:
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());
我有两个列表:
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());