java如何创建比较器
假设我有泛型类
public class MyClass<T extends Comparable<T>> {
T a;
MyClass(T x) {
a = x;
}
public String toString() {
return a.toString();
}
}
我想让Comparator能够对充满MyClass元素的集合进行排序
如果我这样写
public class MyComparator implements Comparator<MyClass> {
public int compare(MyClass o1, MyClass o2) {
return o1.a.compareTo(o2.a);
}
}
我接到一个电话
这样写比较器对吗
import java.util.Comparator;
public class MyComparator<T extends Comparable<T>> implements Comparator<MyClass<T>> {
public int compare(MyClass<T> o1, MyClass<T> o2) {
return o1.a.compareTo(o2.a);
}
}
# 1 楼答案
如果您希望
MyClass
成为Comparable
,那么您可以在不传递Comparator
的情况下进行排序,这可以通过以下方式完成:如果你真的想创建一个
MyClassComparator
,那么它应该看起来像