Java 将对象的ArrayList列表转换为对象[][]
有人知道如何转换二维列表吗:Java 将对象的ArrayList列表转换为对象[][],java,arrays,arraylist,java-8,Java,Arrays,Arraylist,Java 8,有人知道如何转换二维列表吗: private List<ArrayList<Object>> data = new ArrayList<ArrayList<Object>>(); 进入数组:对象[][]数据? 我注意到data.aslistnewobject[I][j];只返回像T[]这样的一维。当然,j维总是恒定的。您可以使用for循环并调用每个内部列表 Object[][] arr = new Object[data.size()][]; i
private List<ArrayList<Object>> data = new ArrayList<ArrayList<Object>>();
进入数组:对象[][]数据?
我注意到data.aslistnewobject[I][j];只返回像T[]这样的一维。当然,j维总是恒定的。您可以使用for循环并调用每个内部列表
Object[][] arr = new Object[data.size()][];
int i = 0;
for(ArrayList<Object> list : data){
arr[i++] = list.toArray();
}
您可以使用for循环并调用每个内部列表
Object[][] arr = new Object[data.size()][];
int i = 0;
for(ArrayList<Object> list : data){
arr[i++] = list.toArray();
}
据我所知,您必须循环列表中的所有数组,如下所示:
Object[][] objs = new Object[data.size()][];
for(int i= 0; i < data.size(); i++)
objs[i] = data.get(i).toArray();
据我所知,您必须循环列表中的所有数组,如下所示:
Object[][] objs = new Object[data.size()][];
for(int i= 0; i < data.size(); i++)
objs[i] = data.get(i).toArray();
使用Java8的流怎么样
data.stream()
.map(il -> il.stream().toArray(size -> new Integer[size]))
// OR THIS .map(il -> il.toArray(new Integer[0]))
.toArray(size -> new Integer[size][]);
流-执行类似迭代器的操作,遍历所有元素和列表
映射-将元素列表转换为所需的数组[]。虽然可以对列表进行流式处理,但也可以使用阵列
toArray-您传输流并完成它。
下面是整个主要方法和一些示例数据
public static void main(String[] args) {
List<List<Integer>> data = new ArrayList<>();
data.add(Arrays.asList(10, 11, 12, 13));
data.add(Arrays.asList(20, 21, 22, 23));
Integer[][] result = data.stream()
.map(il -> il.toArray(new Integer[0]))
.toArray(size -> new Integer[size][]);
}
使用Java8的流怎么样
data.stream()
.map(il -> il.stream().toArray(size -> new Integer[size]))
// OR THIS .map(il -> il.toArray(new Integer[0]))
.toArray(size -> new Integer[size][]);
流-执行类似迭代器的操作,遍历所有元素和列表
映射-将元素列表转换为所需的数组[]。虽然可以对列表进行流式处理,但也可以使用阵列
toArray-您传输流并完成它。
下面是整个主要方法和一些示例数据
public static void main(String[] args) {
List<List<Integer>> data = new ArrayList<>();
data.add(Arrays.asList(10, 11, 12, 13));
data.add(Arrays.asList(20, 21, 22, 23));
Integer[][] result = data.stream()
.map(il -> il.toArray(new Integer[0]))
.toArray(size -> new Integer[size][]);
}
使用循环。在这个循环中,将每个内部列表转换成一个对象[]。使用循环。在这个循环中,将每个内部列表转换成一个对象[]。非常感谢。它完全解决了我的问题。我还将尝试1.8功能,这将迫使我看到新的功能肯定:非常感谢。它完全解决了我的问题。我还将尝试使用1.8功能,这将迫使我肯定地看到新功能: