List排序

原创 2015年11月18日 10:18:59

一个结果集List,里面有很多的对象,要求根据对象的成员进行排序。


方法1:

排序:

Java代码 

  1. Collections.sort(list, new Comparator<ComparableBean>() {  
  2.             public int compare(ComparableBean arg0, ComparableBean arg1) {  
  3.                 int hits0 = arg0.getHits();  
  4.                 int hits1 = arg1.getHits();  
  5.                 if (hits1 > hits0) {  
  6.                     return 1;  
  7.                 } else if (hits1 == hits0) {  
  8.                     return 0;  
  9.                 } else {  
  10.                     return -1;  
  11.                 }  
  12.             }  
  13.         }); 


----------------------------------------------------------------------------------------------------------------------------------------------------

方法2:

方法:
1. 对象实现Comparable接口,并从写compareTo()方法,方法里是排序规则。
2. 利用Arrays.sort(o)进行排序,注意不要用List.toArray();
3. 获得排序后的List。


对象:

Java代码 

  1. public class ComparableBean implements Comparable<ComparableBean> {  
  2.   
  3.     private int id;  
  4.   
  5.     private String name;  
  6.   
  7.     private Date birthday;  
  8.   
  9.     public Date getBirthday() {  
  10.         return birthday;  
  11.     }  
  12.   
  13.     public void setBirthday(Date birthday) {  
  14.         this.birthday = birthday;  
  15.     }  
  16.   
  17.     /* 
  18.      * 按照id从大到到小的顺序排序。 自己可以在方法里面编写任意的排序算法。 
  19.      */  
  20.     public int compareTo(ComparableBean o) {  
  21.         // 根据名字从小到大顺序:if(String.CASE_INSENSITIVE_ORDER.compare(getName(), o.getName()) > 0)  
  22.         // 根据生日从小到大顺序:if (this.birthday.compareTo(o.getBirthday()) > 0)   
  23.         // 根据ID从小到大顺序。  
  24.         if(this.getId() > o.getId()){  
  25.             return 1;  
  26.         }else {  
  27.             return -1;  
  28.         }  
  29.     }  
  30.   
  31.     public int getId() {  
  32.         return id;  
  33.     }  
  34.   
  35.     public void setId(int id) {  
  36.         this.id = id;  
  37.     }  
  38.   
  39.     public String getName() {  
  40.         return name;  
  41.     }  
  42.   
  43.     public void setName(String name) {  
  44.         this.name = name;  
  45.     }  
  46.   
  47.     @Override  
  48.     public String toString() {  
  49.         return getId() + " : " + getName() + " : " + getBirthday().toString();  
  50.     }  

排序和测试类:
Java代码  :
  1. import java.util.ArrayList;  
  2. import java.util.Arrays;  
  3. import java.util.Date;  
  4. import java.util.List;  
  5. import java.util.Random;  
  6.   
  7. public class TestComparable {  
  8.   
  9.     private TestComparable() {  
  10.         ComparableBean cbean;  
  11.         Random rand = new Random();  
  12.         List<ComparableBean> beans = new ArrayList<ComparableBean>();  
  13.         for (int i = 0; i < 100; i++) {  
  14.             cbean = new ComparableBean();  
  15.             cbean.setId(rand.nextInt(10000));  
  16.             cbean.setBirthday(new Date());  
  17.             cbean.setName("TestName" + rand.nextInt(1000));  
  18.             beans.add(cbean);  
  19.         }  
  20.           
  21.         Object[] beanObjects = beans.toArray();  
  22.         Arrays.sort(beanObjects);  
  23.   
  24.         beans.removeAll(beans);  
  25.         System.out.println(beans.size());  
  26.           
  27.         for (int i = 0; i < 100; i++) {  
  28.             System.out.println(beanObjects[i]);  
  29.         }  
  30.   
  31.         System.out.println("ok");  
  32.     }  
  33.   
  34.     public static void main(String[] args) {  
  35.         new TestComparable();  
  36.     }  
  37.   


list的排序准则(完整版)

  • 2013年06月02日 20:15
  • 150KB
  • 下载

Dui list排序

  • 2015年05月14日 17:47
  • 334KB
  • 下载

对List集合中的元素进行排序

Collections对List集合中的数据进行排序 有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到 Java中提供的对集合进行操作的工具类Collections,其中的so...

list列排序和调用sql存储过程

  • 2015年04月03日 08:18
  • 23.29MB
  • 下载

java list按照元素对象的指定多个字段属性进行排序

java list按照元素对象的多个字段属性进行排序

数组排序 list

  • 2014年06月05日 12:23
  • 2.38MB
  • 下载

JAVA LIST排序

  • 2013年09月09日 21:39
  • 719B
  • 下载

链表的二路归并排序 Sort List

对于链表,想找一种时间复杂度为O(nlogn),空间复杂度O(1)的算法。Sort a linked list in O(n log n) time using constant space co...

具有排序功能的list control

  • 2011年07月29日 00:57
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:List排序
举报原因:
原因补充:

(最多只允许输入30个字)