我创建了一个函数,它在我的数组中找到最多3个组。当我打印这个时,内存地址[I @ 43c46747被打印而不是应该包含在数组中的最大值。
我不允许使用任何导入语句/任何高级解决方案 - 尝试使用辅助函数?
谢谢:)
答案 0 :(得分:2)
实际上,你看到的不是内存地址,而是数组的类名和哈希值(以十六进制形式)。这是从toString()
java.lang.Object
方法继承的行为
您可以使用for循环单独打印每个数组元素。
例如
for (int i = 0; i < myArray.length; i ++) {
System.out.println(myArray[i]);
}
请注意,println
打印非基本类型的数组元素的toString
方法的结果。如果您想要自定义行为而不是&#34; classname @ hashvalue&#34;
toString
被正确覆盖
答案 1 :(得分:0)
当您尝试正常打印数组时,您只需在Array对象上调用toString()
方法。在Java中,这是默认实现,它打印出您在[I@43c46747
上面看到的结果。
你应该使用
System.out.println(Arrays.toString(myArray));
为数组打印有意义的值。