当前位置: 首页 > 知识库问答 >
问题:

为什么打印Java数组会显示内存位置[重复]

庞瀚
2023-03-14
int[] answer= new int[map.size()];  
HashMap<String, Integer> map = new HashMap<String, Integer>();  

for (int j=0; j<answer.length;j++){  
    int x=map.get(keys.get(j));  
    answer[j]=x;  
}  

return answer  

当我在循环中使用system.out.println(x)打印x时,我得到1、2、3值,但当我返回答案并打印它时,我得到[I@9826AC5。知道为什么吗?

共有1个答案

汪茂
2023-03-14

i[是整数数组的“类类型”。打印此数组本身将打印类类型@然后打印一个短十六进制字符串,因为这是数组的哈希代码。它与您可能看到的类似Object@0B1AC20的内容相同。这是作为Object的默认ToString()实现的。

也许您希望返回数组的特定元素,或者使用for循环打印整个数组?

 类似资料:
  • 我的程序声明了两个大小为26的字符数组(char[26]),从包含a-z和a-z的字符串中随机获取字母,并使用它们填充这两个数组。最后,它从两个数组中获取每个小写字母,然后使用它们填充一个ArrayList,按字母顺序排序,然后显示(或者至少应该这样做)。我不是完全确定问题是什么,更不知道如何解决它,所以任何帮助将是感激的。

  • 问题内容: 打印char数组不显示哈希码: 输出: 为什么将整数数组打印为哈希码而不是char数组? 问题答案: 首先,就像其他任何类型的数组一样,char数组是Java中的Object。只是以不同的方式打印。 (这是实例的类型)具有用于字符数组的特殊版本--因此不必调用该数组。最终调用,将数组的字符写入输出流。 这就是为什么对a调用println与对其他类型的数组调用它的行为有所不同的原因。对于

  • 我在用pycharm。2017.1.2. 我在py3环境中安装了anaconda2。在Pycharm中,我使用的是Python3解释器,代码很简单: 在Pycharm的Python控制台中,它打印内置的。 如果我单击“run”(运行)按钮,它会按预期打印主屏幕。 为什么PyCharm Python控制台打印的是内置的而不是主的?

  • 初始化数据段 BSS 堆栈 堆 代码 现在考虑以下程序: 在上面的程序中,arr和x都是在main函数内本地声明的。我认为这意味着它们都将在函数堆栈上分配空间。但是,当我在linux上运行size命令时,我发现实际上正在为数组分配数据段中的空间。

  • 在python为什么 我想当时,这应该是正确的。应该给我,但是为什么没有?如果这是对的,为什么当,它给我?

  • 问题内容: 我有以下课程: 这是编译结果; 为什么我的输出中包含数字? 问题答案: 在第二种情况下,它将两个字符(G-71和o-111)的unicode码相加并打印总和。这是因为被视为数字类型,因此在这种情况下,运算符是通常的求和。