我很难坚持一个我无法找到答案的问题。我发现了 this one about custom comparators,但它不完整:
class YourClass { static Comparator<YourClass> getAttribute1Comparator() { return new Comparator<YourClass>() { // compare using attribute 1 }; } static Comparator<YourClass> getAttribute2Comparator() { return new Comparator<YourClass>() { // compare using attribute 2 }; } }
这应该有用,但我不知道比较部分是如何工作的。这是我的班级:
package ZVCVolkel_Logic;
import java.util.Comparator;
public class Vliegtuig implements Comparator<Vliegtuig>{
private String naam;
private String type;
private String status;
private Hangaar hangaar;
public Vliegtuig(String naam, String type, String status, Hangaar hangaar){
this.naam = naam;
this.type = type;
this.status = status;
this.hangaar = hangaar;
}
}
现在我需要status
和Hangaar.getName()
的比较器。有人可以帮忙吗?
不是那个,他只有一个比较器。我也可以使用它,但不能用1个类中的2个不同的。
答案 0 :(得分:-1)
在比较器实现中,您需要比较2个对象。例如,您可以引用大多数JDK类,例如java.lang.Integer
。
在您的情况下,解决方案将使用来自以下对象的嵌入式压缩器:
Comparator<Vliegtuig> nameComparator = new Comparator<>() {
@Override
public int compare(Vliegtuig o1, Vliegtuig o2) {
return o1.getName().compareTo(o2.getName());
}
}
你不需要通过Vliegtuig扩展Comparator。