private class myComparator implements Comparator<Object>{
@Override
public int compareTo(Object obj1, Object obj1) {
if ((obj1.getNumber() - obj2.getNumber()) == 0) {
return 0;
}
if ((obj1.getNumber() > obj2.getNumber()) {
return 1;
}
return -1;
}
嘿,我不知道如何在我正在实现的 Comparator 类中实现此compareTo 方法。我正在尝试按升序比较两个对象的整数值。但我真的不知道我要去哪里
稍后,我将在另一个类中将该类称为 collections.sort(someList, myComparator) 。
最佳答案
首先,Comparator
需要 compare
方法,而不是compareTo
。由于您的类(class)实现了 Comparator<Event>
,该方法的参数应该是 Event
s。
private class myComparator implements Comparator<Event>
{
@Override
public int compare(Event obj1, Event obj1) {
if (obj1 == null) {
if (obj2 == null) {
return 0;
} else {
return 1;
}
} else if (obj2 == null) {
return -1;
}
return obj1.getNumber().compareTo(obj2.getNumber());
}
}
请注意,我假设 getNumber()
永远不会返回 null。如果它可以返回 null,则需要进行更多 null 检查。
关于Java : How to use the `Comparator` interface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30589607/