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进行扁平化。