将 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++;
}
如何将 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++;
}