我想创建一个实现比较器接口的比较器类。在课堂上,我想根据他们的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;
}
}
我完全坚持这一点,并且不知道该怎么做。有人可以帮忙吗?
答案 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替换为您的类,并将测试更改为更适合您的对象的测试。最后记得检查空值。