首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >List<List<Integer>>到二维数组的转换(int[][])

List<List<Integer>>到二维数组的转换(int[][])
EN

Stack Overflow用户
提问于 2020-05-08 22:56:39
回答 2查看 49关注 0票数 0

我想把List<List<Integer>>转换成java中的二维数组。我可以用下面的代码做到这一点,但问题是我的二维数组使用了原始数据类型。

代码语言:javascript
复制
Integer[][] array = new Integer[resultList.size()][];
        for (i = 0; i < resultList.size(); i++) {
            ArrayList<Integer> row = (ArrayList<Integer>) resultList.get(i);
            array[i] = row.toArray(new Integer[row.size()]);
        }
EN

回答 2

Stack Overflow用户

发布于 2020-05-08 23:04:47

听起来你想要的是int[][]而不是Integer[][]。在这种情况下,我会选择:

代码语言:javascript
复制
int[][] result = resultList.stream()                                
       .map(l -> l.stream().mapToInt(e -> e).toArray()) 
       .toArray(int[][]::new);
票数 1
EN

Stack Overflow用户

发布于 2020-05-08 23:15:22

您可以通过迭代List<List<Integer>>并将List<Integer>的元素复制到int [][] array的相应行中来完成此操作。

代码语言:javascript
复制
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<List<Integer>> list = List.of(List.of(10, 20), List.of(5, 15));
        int[][] array = new int[list.size()][];
        for (int i = 0; i < list.size(); i++) {
            array[i] = new int[list.get(i).size()];
            for (int j = 0; j < list.get(i).size(); j++) {
                array[i][j] = list.get(i).get(j);
            }
        }

        // Display array[][]
        System.out.println(Arrays.deepToString(array));
    }
}

输出:

代码语言:javascript
复制
[[10, 20], [5, 15]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61681979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档