首页 > 代码库 > Java中Comparable和Comparator实现对象比较

Java中Comparable和Comparator实现对象比较

1.通过Comparable实现排序

package Comparable;import java.util.Arrays;public class ComparableUser implements Comparable<ComparableUser> {    private String id;    private int age;    public ComparableUser(String id, int age) {        this.id = id;        this.age = age;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public int compareTo(ComparableUser o) {         return this.age - o.getAge();         //return ((ComparableUser) o).getAge() - this.age;    }    /**     * 测试方法     */    public static void main(String[] args) {        ComparableUser[] users = new ComparableUser[] {                new ComparableUser("u1001", 25),                new ComparableUser("u1002", 20),                new ComparableUser("u1003", 21) };        Arrays.sort(users);// 对对象进行排序        for (int i = 0; i < users.length; i++) {            ComparableUser user = users[i];            System.out.println(user.getId() + " " + user.getAge());        }    }}

 

2.通过实现Comparator进行排序

package Comparable;import java.util.Arrays;import java.util.Comparator;class User {          private String id;      private int age;        public User(String id, int age) {          this.id = id;          this.age = age;      }        public int getAge() {          return age;      }        public void setAge(int age) {          this.age = age;      }        public String getId() {          return id;      }        public void setId(String id) {          this.id = id;      }  }public class UserComparator implements Comparator {            public int compare(Object arg0, Object arg1) {          return ((User) arg0).getAge() - ((User) arg1).getAge();      }        /**      * 测试方法      */      public static void main(String[] args) {          User[] users = new User[] { new User("u1001", 25),                  new User("u1002", 20), new User("u1003", 21) };          Arrays.sort(users, new UserComparator());          for (int i = 0; i < users.length; i++) {              User user = users[i];              System.out.println(user.getId() + " " + user.getAge());          }      }}