要将一个类型为 List<List> 的嵌套列表转换为类型为 List 的平面列表,可以使用 Java 8 的 flatMap 方法。该方法可以将一个流(Stream)中的每个元素映射为一个流,然后将这些流合并成一个流。
以下是将 List<List> 转换为 List 的示例代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Example {
public static void main(String[] args) {
List<List<String>> nestedList = new ArrayList<>();
nestedList.add(Arrays.asList("A", "B", "C"));
nestedList.add(Arrays.asList("D", "E"));
nestedList.add(Arrays.asList("F", "G", "H", "I"));
List<String> flatList = nestedList.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(flatList);
}
}
输出结果为:
[A, B, C, D, E, F, G, H, I]
在这个例子中,我们首先创建了一个类型为 List<List> 的嵌套列表,然后使用 stream 方法将其转换为一个流。接下来,使用 flatMap 方法将每个内部列表转换为一个流,并将所有流合并成一个流。最后,使用 collect 方法将流中的所有元素收集到一个类型为 List 的列表中。