![](/img/trans.png)
[英]How to convert an ArrayList of String arrays into a 2D string array
[英]How do I convert an ArrayList of string arrays to a 2D string array?
我有一个ArrayList
处理String
arrays 的 ArrayList 并且应该返回字符串的二维数组:
public String[][] myFunction() {
ArrayList<String[]> myArrayList = new ArrayList<String[]>();
...
return myArrayList.toArray(String[][]);
}
哪个不起作用。 转换为String[][]
类型也不起作用:
return (String[][]) myArrayList.toArray();
请注意,我需要String[][]
,而不是Object[][]
。
我怎样才能让它工作?
可以使用List
接口的toArray
方法
ArrayList<String[]> myArrayList = new ArrayList<String[]>();
myArrayList.add(new String[] {"A","B","C"});
myArrayList.add(new String[] {"AA","BB","CC"});
String[][] array = myArrayList.toArray(String[][]::new);
System.out.println(Arrays.deepToString(array));
印刷
[[A, B, C], [AA, BB, CC]]
这是另外两种方法。 在这两种情况下,它们都可以在不同长度的 arrays 下正常工作。
这只是简单地复制列表中的数组。 因此,如果您更改列表中任何数组的内容,则 arrays 的数组也将被更改。
String[][] array = new String[myArrayList.size()][];
for (int i = 0; i < myArrayList.size(); i++) {
array[i] = myArrayList.get(i);
}
这只是简单地复制列表中的现有数组,以避免前面描述的问题。
String[][] array = new String[myArrayList.size()][];
for (int i = 0; i < myArrayList.size(); i++) {
String[] arr = myArrayList.get(i);
array[i] = Arrays.copyOf(arr, arr.length);
}
你可以试试这个
static String[][] listTo2dArray(ArrayList<String[]> arlS) {
String[][] arr2D = new String[arlS.size()][arlS.get(0).length];
for(int i =0;i<arlS.size();i++) {
arr2D[i] = arlS.get(i);
}
return arr2D;
}
假设您列出的每一行都有相同数量的元素
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.