У меня есть два списка чисел, и я бы хотел найти все возможные пары чисел. Например, учитывая списки [1, 2, 3] и [3, 4], результат должен быть [(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)].
Я знаю, что могу сделать это, используя цикл for
, но есть ли более сжатый способ сделать это с использованием потоков Java 8?
Я пробовал следующее, но у меня что-то не хватает, поскольку я получаю List<Stream<int[]>>
вместо List<int[]>
.
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(3, 4);
List<int[]> pairs = list1.stream().map(i -> list2.stream().map(j -> new int[] { i, j }))
.collect(Collectors.toList());
pairs.forEach(i -> {
System.out.println("{" + i[0]+ "," + i[1]+ "}");
});
}