一个类中的多个比较器

时间:2018-05-11 14:37:55

标签: java comparator

我很难坚持一个我无法找到答案的问题。我发现了 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;
    }
}

现在我需要statusHangaar.getName()的比较器。有人可以帮忙吗?

不是那个,他只有一个比较器。我也可以使用它,但不能用1个类中的2个不同的。

1 个答案:

答案 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。