java_定义⼀个Point 类,包含 double x,y,z 变量,并包含double distance()函数来计算该点到原点的距离。初始化⼀个包含 5 个点的数组, 重写compareTo(E

package experiment4.exp4;
/*定义⼀个Point 类,包含 double x,y,z 变量,
并包含double distance()函数来计算该点到原点的距离。
*/
public class Point implements Comparable<Point> {
    double x,y,z;
    double distance(){
        return Math.sqrt(x*x+y*y+z*z);
    }
    Point(double x_,double y_,double z_){
        x=x_;y=y_;z=z_;
    }

    @Override
    public int compareTo(Point o) {
        if(this.distance()>o.distance()){
            return 1;
        }
        else if(this.distance()==o.distance()){
            return 0;
        }
        else{
            return -1;
        }
        /*return this.distance-o.distance;*/
    }
}

package experiment4.exp4;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/*初始化⼀个包含 5 个点的数组,
重写compareTo(E)方法对数组元素根据到原点的距离进⾏排序。

List<Point> lst=new ArrayList<Point>();
Point p1=new Point(10, 5, 7);
Point p2=new Point(6, 15, 12);
Point p3=new Point(3, 7, 6);
Point p4=new Point(24, 15, 16);
Point p5=new Point(31, 17, 26);
*/
public class DemoPoint {
    public static void main(String []args){
        List<Point> lst=new ArrayList<Point>();
        Point p1=new Point(10, 5, 7);
        Point p2=new Point(6, 15, 12);
        Point p3=new Point(3, 7, 6);
        Point p4=new Point(24, 15, 16);
        Point p5=new Point(31, 17, 26);
        lst.add(p1);
        lst.add(p2);
        lst.add(p3);
        lst.add(p4);
        lst.add(p5);
        Collections.sort(lst);
        for(int i = 0;i<5;i++){
            System.out.println(lst.get(i).distance());
        }
        /*System.out.println(lst);*/

    }

}

posted @ 2022-10-22 22:11  xuchaoxin1375  阅读(19)  评论(0)    收藏  举报  来源