寻找孤立坐标点算法

public void sortByDistance(List<Point> points) {
            for (int i = 0; i < points.size(); ++i) {
                Point a=points.get(i);
                double minD=Double.MAX_VALUE;
                for (int j = 0; j < points.size(); ++j) {
                    if (i == j) {
                        continue;
                    }
                    Point b=points.get(j);
                    double d=calcDistance(a,b);
                    if(d<minD){
                        minD=d;
                    }
                }
                a.setMinDistance(minD);
            }
        Collections.sort(points);
    }

    class Point implements Comparable<Point>{
        public Point(double x, double y,String name) {
            this.x = x;
            this.y = y;
            this.name=name;
        }
        String name;
        double x;
        double y;
        double minDistance;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public double getX() {
            return x;
        }
        public void setX(double x) {
            this.x = x;
        }
        public double getY() {
            return y;
        }
        public void setY(double y) {
            this.y = y;
        }
        public double getMinDistance() {
            return minDistance;
        }
        public void setMinDistance(double minDistance) {
            this.minDistance = minDistance;
        }
        @Override
        public int compareTo(Point o) {
            if(o==null){
                return -1;
            }
            return -((Double)this.minDistance).compareTo(minDistance);
        }
        
    }
    public double calcDistance(Point a,Point b){
        double d=Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
        return d;
    }