打印阵列错误

时间:2017-02-01 13:15:32

标签: java

我正在尝试打印数组,我想我的所有代码都是正确的,不知道为什么我得到的结果如下... 我的代码是

public class App {

    public static void main(String[] args) {
        int[] array = new int[8];

        for (int i = 0; i< array.length; i++){
            array[i] = i;
            System.out.print("| " + array + " ");
        }

        System.out.println(" ");
    }
}   

但我打印的结果如下,为什么?

| [我@ 15db9742 | [我@ 15db9742 | [我@ 15db9742 | [我@ 15db9742 | [我@ 15db9742 | [我@ 15db9742 | [我@ 15db9742 | [我@ 15db9742

3 个答案:

答案 0 :(得分:6)

这是因为

System.out.print("| " + array + " ");

的简写

System.out.print("| " + array.toString() + " ");

并且toString()方法不会打印单个元素(如果它确实可以放弃大型数组,那么聪明的Java人员决定将其委托给Arrays.toString(array) )。

在这种情况下你需要的是

System.out.print("| " + array[i] + " ");

答案 1 :(得分:0)

您正在获取 @ 15db9742 ,即数组对象的哈希码。

尝试:

array

或一次打印

Collection

答案 2 :(得分:0)

它的打印完全按照您的指示进行打印,您期望输出什么?

原始数组等中有哪些值?

尝试打印所选的数组项而不是整个数组。

public static void main(String [] args){ int [] array = new int [8];

for (int i = 0; i< array.length; i++){
var item = array[i];
System.out.print("| " + item + " ");
}
System.out.println(" ");