java类中的多个比较器
我被困在一个我找不到好答案的问题上。我找到了 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 楼答案
comparator接口有一个方法
compare
返回一个int值来确定两个对象之间的关系它将返回:
在这里,您可能需要处理
NullPointerException
ifgetHangaar()
或hangaar.getName()
returnnull
在java 8中,您可以这样做: