Avatar ·

如何在 Java 8 中将列表的列表 (List<List<T>>) 转换为扁平列表 (List<T>)?

大家好!我刚开始学习 Java 8 和 Stream API,遇到了这样一个问题。 我有一个数据结构,它是一个字符串列表的列表。例如,我从 CSV 文件中获取数据,其中每一行是一个字段列表,整个文件就是这些行的列表。我需要将所有行合并成一个总的列表,也就是“展开”嵌套结构。 以下是我拥有的简化示例: ```java List> listOfLists = Arrays.asList( Arrays.asList("a", "b", "c"), Arrays.asList("d", "e"), Arrays.asList("f", "g", "h", "i") ); ``` 我想要得到输出: ```java List flatList = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i"); ``` 我知道在旧版 Java(8 之前)中,可以通过嵌套的 for-each 循环来实现,但这很繁琐。我听说在 Java 8 中有一种优雅的方式可以使用 Streams 来完成,但我一直没搞明白。 我尝试过类似 `listOfLists.st` 的东西,但没成功。