如何初始化和打印单个元素的数组

时间:2013-12-13 14:50:37

标签: java arrays for-loop

public static void main(String[] args) {

        int[] anArray=new int[100];
        int i=0;


        for(i=0;i<anArray.length;i++)
        {
            anArray[i]=(i+1);
            System.out.println(anArray);
        }
}

这就是我所拥有的,但我得到的只是印刷了100次。

  

[I @ 58e5ebd

如何让它在单独的行上打印1-100?

7 个答案:

答案 0 :(得分:3)

由于您正在使用System.out.println(anArray);,因此在您的情况下打印数组对象本身[I@58e5ebd,但您需要打印每个元素,并且可以访问位于{{1}的元素使用index

所以你应该使用它,

anArray[index]

答案 1 :(得分:2)

您可以在不使用数组的情况下完成相同的任务(除非您只是尝试练习数组)。

    for( i = 1; i <= 100; i++)
    {
        System.out.println(i);
    }

编辑:使用数组。您试图打印数组对象本身。这将为您提供内存位置。您实际上想要打印索引,即anArray[0],索引0

   int[] anArray = new int[100];
   int i;

   for( i = 0; i < anArray.length; i++)
    {
        anArray[i] = (i + 1);
        System.out.println([i]);
    }

注意:在运营商之间放置空格。使代码更具可读性

答案 2 :(得分:1)

你真正得到的是输出是对象anArray的地址。 如果要打印此数组的每个元素,则必须遍历它并打印anArray[i]

答案 3 :(得分:0)

代码System.out.println(anArray);试图直接打印整个int []数组。由于int []是引用类型,并且它不会覆盖toString()方法,因此当您尝试打印[I@58e5ebd数组时,您将面临int[]

请参阅,使用anArray[i]=(i+1);为int []数组中的每个元素分配,您可以直接打印它。

所以只需使用

System.out.println(anArray[i]);

而不是

System.out.println(anArray);

答案 4 :(得分:0)

  

如何让它在单独的行上打印1-100?

System.out.println(-99);

答案 5 :(得分:0)

 System.out.println(anArray);

打印对象而不是元素

正确

 System.out.println(anArray[i]);

答案 6 :(得分:0)

在您的代码中,您不是打印数组的当前索引值,而是打印整个数组对象。

[I@58e5ebd

您看到的结果不是您预期的输出结果,因为'@'之后的值是十六进制的对象哈希码。

打印数组当前索引值的正确代码是:

System.out.println(anArray[i]);