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中可以應用于多種集合操作,包括合并多個集合、將集合中的元素轉換為另一種形式以及扁平化嵌套的集合。