Java中的flatMap是一個強大的工具,它可以將多個流合并成一個流,并將嵌套的流扁平化為一個流。以下是一些使用flatMap簡化操作的示例:
List<List<Integer>> nestedList = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
List<Integer> flattenedList = nestedList.stream()
.flatMap(list -> list.stream())
.collect(Collectors.toList());
System.out.println(flattenedList); // 輸出: [1, 2, 3, 4, 5, 6, 7, 8, 9]
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
List<Integer> list3 = Arrays.asList(7, 8, 9);
Stream<Integer> combinedStream = Stream.of(list1, list2, list3)
.flatMap(list -> list.stream());
combinedStream.forEach(System.out::println); // 輸出: 1, 2, 3, 4, 5, 6, 7, 8, 9
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> lowerCaseNames = names.stream()
.map(String::toLowerCase)
.collect(Collectors.toList());
Stream<String> combinedStream = lowerCaseNames.stream()
.flatMap(name -> Arrays.stream(name.split("")));
combinedStream.forEach(System.out::println); // 輸出: a, l, i, c, e, b, o, b, c, h, a, r, l, i, e
通過這些示例,您可以看到如何使用flatMap簡化操作,將嵌套的Stream扁平化,將多個Stream合并成一個Stream,以及在map操作后使用flatMap進行扁平化。