你不能只是申请
outer.toArray(...)
List<String>[]
.
必须先转换所有内部列表,然后才能将它们收集到生成的数据结构中。没有实用的方法可以自动为您做到这一点,但它是相当容易做到自己。
新一代推送接口
溪流是一个很好的选择。只需流式处理外部列表,转换内部列表,然后使用
toArray
由提供
Stream
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++;
}