Java中的flatMap函数主要用于将多个集合或流合并为一个集合或流,并将每个集合或流中的元素转换为另一种形式
List<List<Integer>> lists = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
List<Integer> flattenedList = lists.stream()
.flatMap(list -> list.stream())
.collect(Collectors.toList());
System.out.println(flattenedList); // 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
List<String> stringList = Arrays.asList("1", "2", "3");
List<Integer> integerList = stringList.stream()
.map(Integer::parseInt)
.collect(Collectors.toList());
System.out.println(integerList); // 输出:[1, 2, 3]
List<Map<String, Integer>> maps = Arrays.asList(
Map.of("key1", 1, "key2", 2),
Map.of("key1", 3, "key2", 4),
Map.of("key1", 5, "key2", 6)
);
List<Integer> flattenedList = maps.stream()
.flatMap(map -> map.values().stream())
.collect(Collectors.toList());
System.out.println(flattenedList); // 输出:[1, 2, 3, 4, 5, 6]
总之,flatMap在Java中可以应用于多种集合操作,包括合并多个集合、将集合中的元素转换为另一种形式以及扁平化嵌套的集合。