Comparable 这个是一个接口,可以强行对实现他的类的对象进行整体排序。
使用方法:
class Person implements Comparable<Person>{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(Person o) { if (this.age > o.age){ return -1; } else if (this.age < o.age){ return 1; } else { return 0; } } }
Comparator 这个是一个接口,是要求自定义类去实现,按照oo原则:对修改关闭,对扩展开放,这个可以不修改原来的类进行比较。
使用方法:
class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } //实现比较器 class PersonCompar implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { if (o1.getAge() > o2.getAge()){ return -1; } else if (o1.getAge() < o2.getAge()){ return 1; } else { return 0; } } }