Java中的flatMap
是Java 8引入的一個新特性,它屬于Stream
接口的一個終端操作。flatMap
的主要功能是將多個流合并成一個流,并將每個流中的元素轉換成另一種形式。它主要用于處理嵌套的數據結構,將它們扁平化為一個一維的流。
以下是flatMap
可以處理的一些數據類型:
flatMap
可以將集合中的每個元素轉換成一個流,然后將這些流合并成一個流。例如,你可以使用flatMap
將一個二維數組轉換成一個一維數組。List<List<Integer>> matrix = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
List<Integer> flattened = matrix.stream()
.flatMap(list -> list.stream())
.collect(Collectors.toList());
flatMap
可以將數組中的每個元素轉換成一個流,然后將這些流合并成一個流。例如,你可以使用flatMap
將一個二維數組轉換成一個一維數組。int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int[] flattened = Arrays.stream(matrix)
.flatMapToInt(Arrays::stream)
.toArray();
flatMap
可以處理嵌套的數據結構,將它們扁平化為一個一維的流。例如,你可以使用flatMap
將一個包含多個列表的列表轉換成一個包含所有元素的列表。List<List<String>> nestedList = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d"),
Arrays.asList("e", "f")
);
List<String> flattenedList = nestedList.stream()
.flatMap(list -> list.stream())
.collect(Collectors.toList());
總之,flatMap
主要用于處理嵌套的數據結構,將它們扁平化為一個一維的流。它可以處理集合、數組和嵌套的數據結構等數據類型。