Java中的flatMap是一个强大的工具,它可以将多个流合并成一个流,并将嵌套的流扁平化为一个流。以下是一些使用flatMap简化操作的示例:
- 将嵌套的Stream扁平化:
List> nestedList = Arrays.asList( Arrays.asList(1, 2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9) ); List
flattenedList = nestedList.stream() .flatMap(list -> list.stream()) .collect(Collectors.toList()); System.out.println(flattenedList); // 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]
- 将多个Stream合并成一个Stream:
Listlist1 = Arrays.asList(1, 2, 3); List list2 = Arrays.asList(4, 5, 6); List list3 = Arrays.asList(7, 8, 9); Stream combinedStream = Stream.of(list1, list2, list3) .flatMap(list -> list.stream()); combinedStream.forEach(System.out::println); // 输出: 1, 2, 3, 4, 5, 6, 7, 8, 9
- 在map操作后使用flatMap进行扁平化:
Listnames = Arrays.asList("Alice", "Bob", "Charlie"); List lowerCaseNames = names.stream() .map(String::toLowerCase) .collect(Collectors.toList()); Stream 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进行扁平化。