从数组列表转换为二维数组(返回引用)



我从数组列表转换为二维数组时遇到问题。

在此代码中,返回值是引用而不是值

public int[][] convertTO2D(java.util.List<ArrayList<Integer>> arrayList){
    int listSize = arrayList.size();
    int[][] darr = new int[listSize][];
    for(int i = 0; i < listSize; i++) {
        ArrayList<Integer> sublist = arrayList.get(i);
        int sublistSize = sublist.size();
        darr[i] = new int[sublistSize];
        for(int j = 0; j < sublistSize; j++) {
            darr[i][j] = sublist.get(j);
        }
       // System.out.println("");
    }
    return darr;
}  

这是返回的输出

[[I@5b273190, [I@740ac748, [I@314e4266, [I@1ea46732, [I@7ced7ec7, [I@5effd695]

我该如何解决这个问题?

如何打印 2D 数组?使用这个System.out.println(Arrays.deepToString(array));

每当您看到类似 [I@5b273190 的内容来自 println() 语句时,通常意味着您正在打印对对象的引用,而不是对象的内容。

在这种情况下,您可以循环访问每个嵌套数组并单独打印值(如果要执行自定义格式设置),也可以使用 @vagueness 建议的方法:

System.out.println(Arrays.deepToString(array));

最新更新