java 比较器有两种实现方式,分别是需要排序类内部实现 Comparable 的 compareTo 方法 或者是 新建比较器类 实现 Comparator 接口的 Compare方法,下面是代码实现,首先建立 需要比较的 Person类,这里有一个点需要提一下,两种比较器的方法返回值是 int 类型,只有正数、负数和零三个选项,返回正数表示调用该比较器的方法大于参数列表的元素,那么这个参数元素安排到实例元素之前,如果返回负数表示实例元素小于参数元素,负数表示将参数元素至于实例元素之后,形成升序排序。即可以简单归纳为 实例元素-参数元素为升序,参数元素-实例元素为降序,Compare中的前一个元素减后一个为升序,后减前为降序。
1. Person 实现Comparable 的 compareTo 方法
1 package CollectTest; 2 3 public class Person implements Comparable<Person> { 4 5 int id ; 6 7 String name; 8 9 short age; 10 11 String work; 12 13 public Person() 14 { 15 16 } 17 18 public Person(int id,String name,short age,String work) 19 { 20 this.id = id; 21 this.name = name; 22 this.age = age; 23 this.work = work; 24 } 25 26 27 @Override 28 public String toString() { 29 return "Person [id=" + id + ", name=" + name + ", age=" + age + ", work=" + work + "]"; 30 } 31 32 33 34 @Override 35 public int compareTo(Person o) { 36 return o.id-this.id; 37 } 38 39 }
2.新建比较类实现比较
1 package CollectTest; 2 3 import java.util.Comparator; 4 5 public class Comparable implements Comparator<Person> { 6 7 @Override 8 public int compare(Person o1, Person o2) { 9 return o1.id-o2.id; 10 } 11 12 }