首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Comparable跟Comparator

2012-10-09 
Comparable和Comparatorpackage com.j2se.demoimport java.util.Arrays/*** java.lang.comparable 此接

Comparable和Comparator

package com.j2se.demo;   import java.util.Arrays;   /**   * java.lang.comparable 此接口强行对实现它的每个类的对象进行整体排序。   * 这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。   * Arrays.sort(Object[])根据元素的自然顺序对指定对象数组按升序进行排序。   * 数组中的所有元素都必须实现 Comparable 接口。   * @author edwin   *   */  public class ComparableUser implements Comparable {       private String id;       private int age;              public ComparableUser(String id, int age){           this.id = id;           this.age = age;       }              public String getId() {           return id;       }       public void setId(String id) {           this.id = id;       }       public int getAge() {           return age;       }       public void setAge(int age) {           this.age = age;       }       @Override      public int compareTo(Object o) {           return this.age - ((ComparableUser)o).getAge();       }              public static void main(String[] args){           ComparableUser[] users = new ComparableUser[]{                   new ComparableUser("id_1",23),                   new ComparableUser("id_2",20),                   new ComparableUser("id_3",25),                   new ComparableUser("id_4",19)           };           Arrays.sort(users);           for(ComparableUser user : users){               System.out.println("id="+user.getId()+" age="+user.getAge());           }       }   }  

?

package com.j2se.demo;   public class User {       private String id;       private int age;              public User(String id, int age){           this.id = id;           this.age = age;       }              public String getId() {           return id;       }       public void setId(String id) {           this.id = id;       }       public int getAge() {           return age;       }       public void setAge(int age) {           this.age = age;       }          }  

?

?

package com.j2se.demo;   import java.util.Arrays;   import java.util.Comparator;   /**   * java.util.Comparator强行对某个对象 collection 进行整体排序 的比较函数。   * Arrays.sort(Object[]a,Comparator c)根据指定比较器产生的顺序   * 对指定对象数组进行排序。 数组中的所有元素都必须是通过指定比较器可相互比较的   * @author edwin   *   */  public class ComparatorUser implements Comparator {       @Override      public int compare(Object o1, Object o2) {           return ((User) o1).getAge() - ((User) o2).getAge();       }       public static void main(String[] args){           User[] users = new User[]{                   new User("id_1",38),                   new User("id_2",29),                   new User("id_3",39),                   new User("id_4",20)           };           Arrays.sort(users, new ComparatorUser());           for(User user : users){               System.out.println("id="+user.getId()+" age="+user.getAge());           }       }   }  

?

?

热点排行