Java List<List<String>>转List<String>

要将一个类型为 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 的列表中。

经验分享 程序员 微信小程序 职场和发展