Neha:
J'ai trois listes,
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));
Je veux traverser à travers chaque fois, et imprimer
1 30 30
1.5 25 25
Comment puis-je faire cela en utilisant l'API de flux java-8?
Xingbin:
Cela fonctionne lorsque la taille des listes sont identiques ou différents:
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();
});