我从数组列表转换为二维数组时遇到问题。
在此代码中,返回值是引用而不是值
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));