java利用随机函数定义10对(x,y)值,由此创建的Point类实例存入一个数组中,按与原点(0,0)的距离由小到大的顺序输出所有的点及到原点的距离。
时间: 2024-11-27 09:18:52 浏览: 64
在Java中,你可以定义一个`Point`类,包含两个坐标属性`x`和`y`。然后,可以使用`java.util.Random`类生成随机的坐标值,并计算每个点到原点的距离(使用勾股定理)。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
public class Main {
static class Point {
double x, y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
// 计算点到原点的距离
public double distanceToOrigin() {
return Math.sqrt(x * x + y * y);
}
}
public static void main(String[] args) {
Random random = new Random();
List<Point> points = new ArrayList<>();
for (int i = 0; i < 10; i++) {
double x = random.nextDouble(); // 随机生成0到1之间的double数
double y = random.nextDouble(); // 随机生成0到1之间的double数
points.add(new Point(x, y));
}
// 按照距离排序
Collections.sort(points, Comparator.comparingDouble(Point::distanceToOrigin));
// 输出点和它们到原点的距离
for (Point p : points) {
System.out.println("点 (" + p.x + ", " + p.y + ") 到原点的距离: " + p.distanceToOrigin());
}
}
}
```
在这个例子中,我们首先生成了10个随机点,然后通过`Collections.sort()`函数将它们按照距离从近到远排序,最后遍历数组并打印出每个点及其距离。
阅读全文