gpt4 book ai didi

java - 数组不打印内容

转载 作者:行者123 更新时间:2023-12-01 21:18:29 25 4
gpt4 key购买 nike

我正在尝试使用

打印数组的内容
toString()

我不知道我做错了什么。

输出应该是从 0 到 100 的 5 个随机数,毕竟我必须将它们全部打印出来,我会将它们存储在数组中。

这是我的代码:

public class Ary {

private int[] anArray;
private int arraySize;
private String numberAsString;
Random r = new Random();

public Ary(int arraySize) {
this.anArray = printArray();
}

public Ary() {
arraySize = 2;
printArray();
}

public int getArraySize() {
return arraySize;
}

public void setArraySize(int arraySize) {
this.arraySize = arraySize;
}

public int[] printArray() {
// Assign anArray with a custom number
anArray = new int[arraySize];

for(int numbers : anArray) {
anArray[numbers] = r.nextInt(100);
System.out.println(anArray[numbers] + " ");
}
return anArray;
}

@Override
public String toString() {
return "Array = " + Arrays.toString(anArray);
}
}

输出:

Music.app.Ary@5e2de80c

这是我的 Arrays.toString() 代码:

public int[] printArray() {
// Assign anArray with a custom number
anArray = new int[arraySize];

for(int numbers : anArray) {
anArray[numbers] = r.nextInt(100);
System.out.println(Arrays.toString(anArray));
}
return anArray;
}

我已经尝试了很多方法,但仍然没有弄清楚。你能解释一下我做错了什么吗?

非常感谢!

最佳答案

您已经更改了 toString() 的签名(因此您没有调用您定义的方法)。相反,您需要类似1

@Override
public String toString() {
return "Array = " + Arrays.toString(anArray);
}

您可能应该在构造函数中初始化 anArray2 并删除“printArray

public Ary(int arraySize) {
this.arraySize = arraySize;
this.anArray = new int[arraySize];
for (int i = 0; i < arraySize; i++) {
this.anArray[i] = r.nextInt(101); // <-- [0, 100], or [0, 101)
}
}

public Ary() {
this(5); // <-- use the other constructor.
}

1覆盖注释会提醒您注意此错误。
2并且在完成初始化之前不应打印数组。

关于java - 数组不打印内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39523589/

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