我有一个课程' Point'。我想对一系列点进行排序,但我想使用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;
}
}
答案 0 :(得分:3)
不是让Point
实现Comparator
,而是有2个Comparator
常量,分别用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);
}