gpt4 book ai didi

java - Array.toString 返回内存地址,而不是实际值

转载 作者:行者123 更新时间:2023-12-02 10:22:54 27 4
gpt4 key购买 nike

我想制作一个应用程序,其中我取一个数字,即盒子的数量,创建一个数组,然后用盒子的高度填充该数组,然后打印出数组中所有盒子及其高度。

public class Boxes {
static class Box {
int height;

Box(int h) {
this.height = h;
}
}

public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
Box arr[] = new Box[n];

for (int i = 0; i < n; i++) {
int h = s.nextInt();
arr[i] = new Box(h);
}

System.out.println(Arrays.toString(arr));
}
}

当我进入3532我想让它打印出5,3,2,但它打印出的是内存地址。

最佳答案

您必须重写 Box 类中的 toString() 方法:

class Box {
private final int height;

public Box(int h){
height = h;
}

@Override
public String toString(){
return Integer.toString(height);
}
}

由于默认实现是由Object类(java中每个对象的基类)继承的,它看起来像这样:

public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

Note that it's not printing the memory address but rather a hexadecimal representation of the hashcode returned by the hashcode()-method

关于java - Array.toString 返回内存地址,而不是实际值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54196305/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com