如何使用Java 8流遍历多个列表?

Neh*_*eha 7 java list java-8 java-stream

我有三个清单,

List<Double> list1= new ArrayList(List.of(1, 1.5));
List<Double> list2= new ArrayList(List.of(30, 25));
List<Double> list3= new ArrayList(List.of(30, 25));
Run Code Online (Sandbox Code Playgroud)

我想同时遍历每个,并打印

1    30  30
1.5  25  25
Run Code Online (Sandbox Code Playgroud)

我怎么能用java-8流API做到这一点?

孙兴斌*_*孙兴斌 1

当列表的大小相同或不同时,这有效:

List<Double> list1 = List.of(1D, 1.5D);
List<Double> list2 = List.of(30D, 25D);
List<Double> list3 = List.of(30D, 25D);
Stream<List<Double>> listStream = Stream.of(list1, list2, list3);

int maxSize = listStream.mapToInt(List::size).max().orElse(0);

IntStream.range(0, maxSize)
        .forEach(index -> {
            listStream
                    .filter(list -> list.size() > index)
                    .forEach(list -> System.out.print(list.get(index) + " "));
            System.out.println();
        });
Run Code Online (Sandbox Code Playgroud)