java语言编写定义Point类,每个点包含(x,y)坐标,利用随机函数产生10个点的(x,y)值,将创建的 Point实例存入一个数组中,按与原点(0,0)的距离由小到大的顺序输出所有的点及到原点的距离。
时间: 2024-05-12 13:20:57 浏览: 114
下面是Java语言编写的Point类以及实现上述要求的代码:
```
import java.util.Arrays;
import java.util.Random;
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public double distanceFromOrigin() {
return Math.sqrt(x * x + y * y);
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
public static void main(String[] args) {
Point[] points = new Point[10];
Random rand = new Random();
for (int i = 0; i < points.length; i++) {
int x = rand.nextInt(101) - 50; // 产生-50到50之间的随机整数
int y = rand.nextInt(101) - 50;
points[i] = new Point(x, y);
}
Arrays.sort(points, (a, b) -> Double.compare(a.distanceFromOrigin(), b.distanceFromOrigin()));
for (Point p : points) {
System.out.println(p + " distance from origin: " + p.distanceFromOrigin());
}
}
}
```
代码中,定义了一个Point类,每个Point对象包含x和y坐标以及计算到原点距离的方法distanceFromOrigin()和toString()方法。在main()方法中,首先定义了一个长度为10的Point数组,然后使用Random类产生-50到50之间的随机整数作为每个点的x和y坐标,并将产生的Point对象存入数组中。接着,使用Arrays类的sort()方法将数组按到原点距离从小到大排序,其中使用lambda表达式实现Comparator接口的compare()方法。最后,遍历数组并输出每个点及其到原点的距离。
阅读全文