Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将对象的ArrayList列表转换为对象[][]_Java_Arrays_Arraylist_Java 8 - Fatal编程技术网

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功能,这将迫使我肯定地看到新功能: