如何将ArrayList<String[]>转为多维数组String[][]?
How to convert ArrayList<String[]> to multidimensional array String[][]?
我有一组 String[] 值,例如:
ArrayList<String[]> values = new ArrayList<>();
String[] data1 = new String[]{"asd", "asdds", "ds"};
String[] data2 = new String[]{"dss", "21ss", "pp"};
values.add(data1);
values.add(data2);
我需要将其转换为多维数组 String[][]。
当我尝试这个时:
String[][] arr = (String[][])values.toArray();
我得到一个ClassCastException
。
我该如何解决这个问题?
这个怎么样(不需要需要Java 11而toArray(String[][]::new)
需要)
values.toArray(new String[0][0]);
那个方法是:
/**
* Returns an array containing all of the elements in this list in proper
* sequence (from first to last element); the runtime type of the returned
* array is that of the specified array. If the list fits in the
* specified array, it is returned therein. Otherwise, a new array is
* allocated with the runtime type of the specified array and the size of
* this list.
不需要投射,检查the doc,你可以使用:
String[][] arr = values.toArray(new String[0][]);
或者如果您正在使用 Java 11
String[][] arr = values.toArray(String[][]::new);
我有一组 String[] 值,例如:
ArrayList<String[]> values = new ArrayList<>();
String[] data1 = new String[]{"asd", "asdds", "ds"};
String[] data2 = new String[]{"dss", "21ss", "pp"};
values.add(data1);
values.add(data2);
我需要将其转换为多维数组 String[][]。 当我尝试这个时:
String[][] arr = (String[][])values.toArray();
我得到一个ClassCastException
。
我该如何解决这个问题?
这个怎么样(不需要需要Java 11而toArray(String[][]::new)
需要)
values.toArray(new String[0][0]);
那个方法是:
/**
* Returns an array containing all of the elements in this list in proper
* sequence (from first to last element); the runtime type of the returned
* array is that of the specified array. If the list fits in the
* specified array, it is returned therein. Otherwise, a new array is
* allocated with the runtime type of the specified array and the size of
* this list.
不需要投射,检查the doc,你可以使用:
String[][] arr = values.toArray(new String[0][]);
或者如果您正在使用 Java 11
String[][] arr = values.toArray(String[][]::new);