为什么我的arrays不能正确打印出来?

我正在尝试使用下面的代码编写一个简单的程序来创建一个单维数组,然后您可以使用索引号调用一个值。 我使用java和eclipse作为我的编译器。 每当我尝试调试或运行程序时,完整的数组都打印出来: [I@1fa8d3b

 class Array { public static void main(String[] args) { int[] MyArray = new int[] {15, 45, 34, 78, 65, 47, 90, 32, 54, 10}; System.out.println("The full array is:"); System.out.println(MyArray); System.out.println("The 4th entry in the data is: " + MyArray[3]); } } 

正确的数据条目在被调用时打印出来。 我试图在网上寻找我应该做什么的答案,但我找不到任何有效的方法。 我刚刚开始学习Java所以可能有一个非常简单的答案,我只是忽略了。 如果有人有任何想法,我将非常感激。

Java是一种面向对象的语言。 当您调用System.out.print(MyArray); 在Java中你实际上是在打印 内存中堆上对象的地址 来自它的父类Object的toString代码,下面显示的代码由EngFouad的评论贡献,对不起发言。 您看到打印出的奇怪字符串是当您要求与变量MyArray相关联的内容时计算机用于查找数据的引用。

如其他答案所述,要打印出对象的数据,可以使用Array类的内置.toString()方法。 这将打印来自对象的数据,而不仅仅是对象引用。

 System.out.println(Arrays.toString(MyArray); 

更正实际上它是Object类的toString():getClass()。getName()+“@”+ Integer.toHexString(hashCode())。 – Eng.Fouad

上述错误得到了纠正,感谢您的评论,不愿提供错误的信息。 我自己误解了。 以下是查看代码的API参考:

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#toString()

使用:

 System.out.println(Arrays.toString(MyArray)); 

为了打印数组元素 。 在您的情况下,您使用默认的Object.toString()实现,这不是那么翔实……

改为使用它:

 System.out.println(Arrays.toString(MyArray)); 

API参考:Arrays.toString(int [])

打印您需要使用循环的数组。 例如:

 for (int i: MyArray){ System.out.print(i + " ")}