JAVA中根据集合中对象属性排序的方法

来源:互联网 发布:淘宝联盟提现不到账 编辑:程序博客网 时间:2024/04/29 11:42
Java代码 复制代码
  1. package Collection;   
  2.   
  3. import java.util.*;   
  4.   
  5. public class Sort {   
  6.     private static ArrayList list = new ArrayList();   
  7.     private static UserBean[] user = new UserBean[4];   
  8.   
  9.     public static void main(String[] args) {   
  10.         Sort sort = new Sort();   
  11.         user[0] = new UserBean("004",34);   
  12.         user[1] = new UserBean("003",56);   
  13.         user[2] = new UserBean("010",1);   
  14.         user[3] = new UserBean("002",22);   
  15.   
  16.         for (int i = 0; i < 4; i++) {   
  17.             list.add(user[i]);   
  18.         }   
  19.         //arg1排序列表,arg2列表顺序比较器为null时使用自然排序   
  20.         Collections.sort(list,new ReverseSort());   
  21.   
  22.         //arg1排序列表,arg2改变列表的随机源   
  23.         //Collections.shuffle(list,new Random());   
  24.   
  25.         for (Iterator iterator = list.listIterator();iterator.hasNext()) {   
  26.             System.out.println(((UserBean)iterator.next()).name);   
  27.         }   
  28.     }   
  29. }   
  30.   
  31. class UserBean implements Comparable{   
  32.     public String name;   
  33.     public int age;   
  34.   
  35.     public UserBean(String name,int age) {   
  36.         this.name = name;   
  37.         this.age = age;   
  38.     }   
  39.   
  40.     //类对象属性进行比较时,继承一个自然排序接口,重写一个自然比较方法   
  41.     public int compareTo(Object obj) {   
  42.         UserBean user = (UserBean)obj;   
  43.         return this.name.compareTo(user.name);   
  44.     }   
  45. }   
  46.   
  47. //自定义反向排序比较器   
  48. class ReverseSort implements Comparator{   
  49.   
  50.     public int compare(Object obj1,Object obj2) {   
  51.         UserBean user1 = (UserBean)obj1;   
  52.         UserBean user2 = (UserBean)obj2;   
  53.         return -user1.name.compareTo(user2.name);   
  54.     }   
  55. }  
原创粉丝点击