首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中将2D列表转换为2D ArrayList

在Java中将2D列表转换为2D ArrayList
EN

Stack Overflow用户
提问于 2020-02-19 15:28:56
回答 2查看 191关注 0票数 1

我试图在Java中将2D列表转换为2D ArrayList,然后将2D ArrayList转换为2D数组,并实现for循环,以返回矩阵的两个对角线的绝对差。

如何将2D ArrayList arr转换为2D ArrayList?

到目前为止,我在尝试将输入列表转换为ArrayList时所做的工作如下:

代码语言:javascript
运行
复制
    public static int diagonalDifference(List<List<Integer>> arr) {

    //first: 2D List --> 2D ArrayList
    int[][] a = new int[arr.size()][];
    for (int i=0; i<arr.size(); i++) {
        List<Integer> row = arr.get(i);
        a[i] = row.toArray(new int[row.size()]);

    //second: 2D ArrayList --> int[][]

    //third: nested for loop through int[][]to difference between diagonals of 2d array
    }

到目前为止,这是我的完整代码。

代码语言:javascript
运行
复制
 public static int diagonalDifference(List<List<Integer>> arr) {
    List<List<Intger>> arrList = new ArrayList<>();

    int[][] a = new int[arr.size()][];
    for (int i=0; i<arr.size(); i++) {
        List<Integer> row = arr.get(i);
        a[i] = row.toArray(new int[row.size()]);
    }

        int pri = 0;
        int sec =0;

    for(int i=0; i<a.length; i++) {
        for(int j=0; j <a.length; j++) {

            if (a[i] == a[j]) {
                pri += a[i];
            }

            if (i == a.length - j - 1) {
                sec += a[i];
            }

        }
    }
    return Math.abs(pri - sec);

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-19 15:40:29

我想你是在找:

代码语言:javascript
运行
复制
public static int[][] diagonalDifference(List<List<Integer>> arr) {
    return arr.stream()
            .map(a -> a.stream().mapToInt(Integer::valueOf).toArray())
            .toArray(int[][]::new);
}
票数 1
EN

Stack Overflow用户

发布于 2020-02-19 15:59:44

这也应该有效:我刚才测试过了。

row.stream().mapToInt(Integer::intValue).toArray();

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60303777

复制
相关文章

相似问题

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