我正在尝试将随机数添加到空数组20个数字0-99。当我运行下面的代码时,它打印出51个数字,它们都是0.
有人可以帮我弄清楚我在这里做错了什么。
import java.util.Random;
public class SortedArray
{
int randomValues;
int[] value;
public SortedArray()
{
}
public int getRandom()
{
Random random = new Random();
for(int j=0; j<20; j++)
{
randomValues = random.nextInt(100);
}
return randomValues;
}
public int getArray()
{
int result = 0;
value = new int[randomValues];
for(int item : value)
{
System.out.println("The array contains " + item);
}
return result;
}
}
这是我的主要方法
public class ReturnSortedArray
{
public static void main(String[] args)
{
SortedArray newArray = new SortedArray();
int random = newArray.getRandom();
int array = newArray.getArray();
System.out.println(array);
}
}
答案 0 :(得分:2)
在您的方法getArray
代码
value = new int[randomValues];
只是创建一个大小为ramdomValues
的新的空int数组。
由于int的默认值是0
,这就是你得到的
同样在您的方法getRandom
中,您一次又一次地设置相同的值
for (...)
randomValues = random.nextInt(100);
试
public int[] getRandomArr()
{
int randomValues [] = new int [20];
Random random = new Random();
for(int j=0; j<20; j++)
{
randomValues[j] = random.nextInt(100);
}
return randomValues;
}
答案 1 :(得分:0)
我看到一些问题,您应该在构造函数中设置值。您也可以将其称为set方法(因为它实际上不是get)。此外,您的getArray()
不会返回数组。所以,我认为你真的想要这样的东西,
public class SortedArray {
private Random random = new Random();
private int[] value = new int[20];
public SortedArray() {
super();
setRandomValues();
}
public void setRandomValues() {
for (int j = 0; j < value.length; j++) {
value[j] = random.nextInt(100);
}
}
public int[] getArray() {
return value;
}
}
然后你的主要方法应该像
一样更新public static void main(String[] args) {
SortedArray newArray = new SortedArray();
int[] array = newArray.getArray();
System.out.println(Arrays.toString(array));
}