实现Comparator接口

时间:2015-03-13 14:23:23

标签: java

我想创建一个实现比较器接口的比较器类。在课堂上,我想根据他们的ID比较我的2个员工对象。我到目前为止所做的员工课程是:

import java.util.ArrayList;


public class Employee {
public int ID_Number;
public String Full_Name;
public double Salary;
static ArrayList<Object> employ = new ArrayList<Object>();


Employee(int id, String name, double sal){
    ID_Number = id;
    Full_Name = name;
    Salary  = sal;
}

}

我完全坚持这一点,并且不知道该怎么做。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这是我的小项目DBvolution的比较器内部类:

private static class ClassNameComparator implements Comparator<Class<?>>, Serializable {

    private static final long serialVersionUID = 1L;

    ClassNameComparator() {
    }

    @Override
    public int compare(Class<?> first, Class<?> second) {
        String firstCanonicalName = first.getCanonicalName();
        String secondCanonicalName = second.getCanonicalName();
        if (firstCanonicalName != null && secondCanonicalName != null) {
            return firstCanonicalName.compareTo(secondCanonicalName);
        } else {
            return first.getSimpleName().compareTo(second.getSimpleName());
        }
    }
}

这可能看起来很复杂,但实际上很简单。基本原则如下:

class ClassNameComparator implements Comparator<YourClass> {

ClassNameComparator() {
}

@Override
public int compare(YourClass first, YourClass second) {
    if (first > second){
        return 1;
    } else if (first == second){
        return 0;
    } else return -1;
}
}

您需要将YourClass替换为您的类,并将测试更改为更适合您的对象的测试。最后记得检查空值。