Java 向数组中添加随机数的问题
我正在尝试将随机数添加到一个空数组中20个数字0-99。当我运行下面的代码时,它会打印出51个数字,它们都是0 有人能帮我找出我做错了什么吗Java 向数组中添加随机数的问题,java,arrays,Java,Arrays,我正在尝试将随机数添加到一个空数组中20个数字0-99。当我运行下面的代码时,它会打印出51个数字,它们都是0 有人能帮我找出我做错了什么吗 import java.util.Random; public class SortedArray { int randomValues; int[] value; public SortedArray() { } public int getRandom() {
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;
}
}
在您的方法中
getArray
代码
value = new int[randomValues];
只是创建一个大小为ramdomValues
的新空int数组
由于int的默认值是0
,这就是您得到的结果
同样,在您的方法getRandom
中,您一次又一次地设置相同的值
for (...)
randomValues = random.nextInt(100);
试一试
public int[]getRandomArr()
{
int randomValues[]=新的int[20];
随机=新随机();
对于(int j=0;j我看到了一些问题,您可能应该在构造函数中设置值。您也可以将其称为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 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;
}
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));
}