通常,我将Comparator定义为-

Comparator<Obj> comparator= new Comparator<Obj>() {
    public int compare(Obj o1, Obj o2) {
        //implementation...
    }
};


Comaprator是类成员的一部分时,在代码格式上看起来不太好。有什么方法可以将Comparator定义为Comparator<Obj> comparator= new Comparator<Obj>()并在另一节中实现他的compare吗?

最佳答案

只需定义实现class接口的Comparator,并使用compare在该类中实现comparison logic方法:-

public class ObjComparator implements Comparator<Obj> {
    public int compare(Obj o1, Obj o2) {
        //implementation
    }
}


然后,无论您想使用Comparator的哪个位置,都可以使用此类的实例。例如,在Arrays.sort中:-

Obj[] yourArray = new Obj[10];
Arrays.sort(yourArray, new ObjComparator());

关于java - 在定义行之外实现比较器的比较方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13562408/

10-11 04:03