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.   


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Dui list排序

  • 2015-05-14 17:47
  • 334KB
  • 下载

使用jquery-sortable交互工具和acts_as_list rubygem实现页面拖动排序

拖动不同item从页面上实现的重新排序,并将其保存在数据库中。

List中对象model的排序问题

第一种方法,就是List

数组排序 list

  • 2014-06-05 12:23
  • 2.38MB
  • 下载

JAVA LIST排序

  • 2013-09-09 21:39
  • 719B
  • 下载

STL list 排序

From: http://hi.baidu.com/chencqwu/blog/item/c594161dd084728687d6b6b1.html 1.algorithm 里的sort...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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