浅谈 java 比较器

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 }

 

posted @ 2021-03-04 23:48  二五树  阅读(278)  评论(0编辑  收藏  举报