温馨提示×

java flatmap怎样简化操作

小樊
83
2024-11-16 08:35:32
栏目: 编程语言

Java中的flatMap是一个强大的工具,它可以将多个流合并成一个流,并将嵌套的流扁平化为一个流。以下是一些使用flatMap简化操作的示例:

  1. 将嵌套的Stream扁平化:
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]
  1. 将多个Stream合并成一个Stream:
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
  1. 在map操作后使用flatMap进行扁平化:
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进行扁平化。

0