![](/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.