Java数组打印出奇怪的数字和文本

2022-09-03 16:26:49

我是编程新手。我相信这个问题的答案就在那里,但我不知道要搜索什么。

好吧,我会直接去的。

这是我的代码:

int[] arr;
arr = new int[5];

arr[0] = 20;
arr[1] = 50;
arr[2] = 40;
arr[3] = 60;
arr[4] = 100;

System.out.println(arr);

这可以编译并正常工作。这只是CMD的输出,我对此感到头晕目眩。

这是输出:。[I@3e25a5

我希望输出表示列表中完全相同的数字()。我该如何做到这一点?arr


答案 1

每个对象都有一个方法,默认方法是显示对象的类名表示形式,然后显示其哈希码。所以你看到的是数组的默认表示形式。要打印数组中的数据,可以使用:toString()@toString()int

System.out.println(java.util.Arrays.toString(arr));

或者,您可以使用循环遍历数组,就像其他人在此线程中发布的那样。for


答案 2
System.out.println(Arrays.toString(arr));

当前输出为 。classtype@hashcode

如果您需要打印具有多个维度的数组,请使用:

Arrays.deepToString(arr);

还要记住重写用户定义类的 toString() 方法,以便您获得所选 objet 的表示形式,而不是默认表示形式classtype@hashcode