[英]Creating an Array with random numbers with a specific object reference
对于calc的100个元素中的每个元素,使用随机生成的数字实例化一个Claclal对象。 为此,请使用Random类以及.nextDouble()方法。
我已经创建了100个元素,但无法将任何数字添加到数组中。 当我尝试添加任何随机数时,我收到一条错误消息,说它需要一个claclal,但发现一个int。
public class Claclal {
private static Claclal[] calc;
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i <calc.length; i++) {
calc[i] = new Claclal();
calc[i] = (int)(Math.random());
}
我得到的错误在最后一行。 我无法将引用更改为int,因为它应该是claclal引用。 为了使代码正常工作,我需要更改什么?
您有一个Clacal
类型的数组,而不是int类型的数组。 您有2个选择
1)在Clacal中创建一个为double的属性。
例:
public class Claclal {
private static Claclal[] calc;
private final double number;
public Clacal(double number){
this.number=number;
}
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i <calc.length; i++) {
calc[i] = new Claclal(r.nextDouble());
}
}
2)做一个双数组
public class Claclal {
private static double[] calc;
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i <calc.length; i++) {
calc[i] = r.nextDouble();
}
}
calc[i] = (int)(Math.random());
这是不允许的,因为数组类型是Claclal
,并且您正在尝试插入整数。
您需要在Claclal
类中添加一个字段并添加到该字段中。
Claclal c= new Claclal();
c.setRandomNumber((int)(r.nextDouble()));
calc[i] = c;
然后你的代码变成
public class Claclal {
private static Claclal[] calc;
private int randomNumber;
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i < calc.length; i++) {
Claclal c = new Claclal();
c.setRandomNumber((int) (r.nextDouble()));
calc[i] = c;
}
}
public int getRandomNumber() {
return randomNumber;
}
public void setRandomNumber(int randomNumber) {
this.randomNumber = randomNumber;
}
}
您正在使用Math.random()
更多信息,并且您想使用r.nextDouble()
由于claclal
类没有任何属性,因此出现错误。 在claclal
添加一个属性,如下所示:
import java.util.Random;
public class Claclal {
private static Claclal[] calc;
int value;
public Claclal( int value) {
this.value = value;
}
public static void main(String[] args) {
Random r = new Random();
calc = new Claclal[100];
for (int i = 0; i < calc.length; i++) {
calc[i] = new Claclal(r.nextInt());
System.out.println(""+calc[i].value);
}
}
}
您试图将一个int
值分配为Claclal
数组的元素。
您应该向Claclal
类添加一个字段以在每个对象中存储一个double值。 在您的main
方法中,使用您实例化的Random
对象将新的random double
值传递给数组中Claclal
的每个新实例的构造函数。
import java.util.Random;
public class Claclal {
// the double field to store a value
private double value;
public Claclal(double value) {
this.value = value;
}
// getter
public double getValue() {
return this.value;
}
// setter
public void setValue(double value) {
this.value = value;
}
public static void main(String[] args) {
Random r = new Random();
Claclal[] calc = new Clalcal[100];
for (int i = 0; i < calc.length; i++) {
// add new Claclal object with a random double value
calc = new Claclal(r.nextDouble());
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.