将 List<List<String>> 转换为 String[][]

Convert List<List<String>> to String[][]

如何将 List<List<String>> 转换为 String[][]

我试过 here 提供的解决方案,但运气不佳。

如有任何帮助,我们将不胜感激。

说明

您不能只应用 outer.toArray(...),因为那样会给您一个列表数组,List<String>[]

您必须先转换所有内部列表,然后才能将它们收集到生成的数据结构中。没有可用的实用程序方法可以自动为您执行此操作,但您自己可以很容易地执行此操作。

流API

Streams 是一个很好的选择。只需流式传输外部列表,转换内部列表,然后使用 Stream.

提供的 toArray
String[][] result = outer.stream()              // Stream<List<String>>
    .map(inner -> inner.toArray(String[]::new)) // Stream<String[]>
    .toArray(String[][]::new);

传统循环

您也可以使用更传统的手动方法来遵循完全相同的想法,即设置目标外部数组、遍历内部列表、转换它们并将它们收集到您的数组中。

String[][] result = new String[outer.size()];
int i = 0;
for (List<String> inner : outer) {
    result[i] = inner.toArray(String[]::new);
    i++;
}