每当我尝试以这种方式生成城市的随机坐标时,
public City () {
super();
this.x = Math.random()*200;
this.y = Math.random()*200;
}
我得到X和Y的相同值,这意味着所有城市都在地图上的同一行。我的问题是如何避免这种情况?如何创建不同的坐标?感谢。
答案 0 :(得分:2)
我假设这样的课程:
class City {
private double x;
private double y;
public City() {
super();
this.x = Math.random() * 200;
this.y = Math.random() * 200;
}
@Override
public String toString() {
return "City [x=" + x + ", y=" + y + "]";
}
}
当我创建新的City对象时,我得到(正如Math API应该预期的)不同的值:
City [x=10.552289272723247, y=28.548756787475504]
City [x=58.96588997141927, y=146.87205149574288]
City [x=186.69728798772306, y=179.3787764147533]
不要误解我的意思 - 也许是在你错误地检查你使用的值两次的时候?
答案 1 :(得分:1)
要获得不同的double值,请使用java.util.Random
类。下面是一个例子,它打印出四个不同的双值:
java.util.Random random = new java.util.Random();
System.out.println(random.nextDouble());
System.out.println(random.nextDouble());
System.out.println(random.nextDouble());
System.out.println(random.nextDouble());
答案 2 :(得分:1)
使用java.util.Random
。
例如:
Random random = new Random();
int x = random.nextInt(11); // from 0 to 10
double y = random.nextDouble(); // from 0 to 1
答案 3 :(得分:0)
你必须做错其他的问题。
public static void main(String[] args) {
double x = Math.random() * 200;
double y = Math.random() * 200;
System.out.println(x + ":"+y);
}
考虑上面的代码捕捉,你会得到不同的x和y值..!
请确保每次创建城市对象时都使用新关键字。