Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的点排序数组_Java_Sorting - Fatal编程技术网

Java中的点排序数组

Java中的点排序数组,java,sorting,Java,Sorting,我有一个课堂“要点”。我想对一个点数组进行排序,但我想使用2个“比较”函数(我想取2个数组,一个按X排序,另一个按Y排序)。 如何使我的类接受2个比较函数?这是我的密码 static class Point implements Comparator<Point>{ int x,y; int compareX(Point A , Point B){ return A.x - B.x; } int compareY(Point A , P

我有一个课堂“要点”。我想对一个点数组进行排序,但我想使用2个“比较”函数(我想取2个数组,一个按X排序,另一个按Y排序)。 如何使我的类接受2个比较函数?这是我的密码

static class Point implements Comparator<Point>{
    int x,y;
    int compareX(Point A , Point B){
        return A.x - B.x;
    }
    int compareY(Point A , Point B){
        return A.y - B.y;
    }
}
静态类点实现比较器{
int x,y;
int compareX(点A、点B){
返回A.x-B.x;
}
int比较(点A、点B){
返回A.y-B.y;
}
}

没有
实现
比较器
,而是有2个
比较器
常数,分别通过x和y进行比较

static class Point {
  public static final Comparator<Point> X_COMPARATOR = Comparator.comparingInt(Point::getX);

  public static final Comparator<Point> Y_COMPARATOR = Comparator.comparingInt(Point::getY);
}
静态类点{
公共静态最终比较器X_Comparator=Comparator.comparingInt(点::getX);
公共静态最终比较器Y_Comparator=Comparator.comparingInt(点::getY);
}

没有
实现
比较器
,而是有2个
比较器
常数,分别通过x和y进行比较

static class Point {
  public static final Comparator<Point> X_COMPARATOR = Comparator.comparingInt(Point::getX);

  public static final Comparator<Point> Y_COMPARATOR = Comparator.comparingInt(Point::getY);
}
静态类点{
公共静态最终比较器X_Comparator=Comparator.comparingInt(点::getX);
公共静态最终比较器Y_Comparator=Comparator.comparingInt(点::getY);
}

难道您还没有两个比较函数吗?问题是我需要实现将在数组中使用的“比较”函数。sort(myArray)难道您还没有两个比较函数吗?问题是我需要实现将在数组中使用的“比较”函数。sort(myArray)我不确定该如何使用这个比较器。这不起作用:公共点sortByX(){return array.sort(This,X_COMPARATOR);}@epanicafrate
Point
不是数组<代码>数组。排序将
对象[]
作为第一个参数。我是说集合。排序,不是数组。排序,我的错。但是它仍然不起作用。
Collections.sort
集合
作为第一个参数,而不是
。您得到的确切错误是什么。@epanicafrate错误消息显示
S
属于
Cmap.Point[]
类型。所以它不是一个集合,而是一个数组。所以你应该使用数组。所以我不确定我应该如何使用这个比较器。这不起作用:公共点sortByX(){return array.sort(This,X_COMPARATOR);}@epanicafrate
Point
不是数组<代码>数组。排序将
对象[]
作为第一个参数。我是说集合。排序,不是数组。排序,我的错。但是它仍然不起作用。
Collections.sort
集合
作为第一个参数,而不是
。您得到的确切错误是什么。@epanicafrate错误消息显示
S
属于
Cmap.Point[]
类型。所以它不是一个集合,而是一个数组。所以应该使用Arrays.sort