Collections.sort的两种用法

来源:互联网 发布:c语言99乘法表倒三角 编辑:程序博客网 时间:2024/05/13 03:02

Collections.sort的两种用法

  • 博客分类: 
  • java
 
Java代码  收藏代码
  1.    
  2. package com.jabberchina.test;  
  3.   
  4. import java.util.ArrayList;  
  5. import java.util.Collections;  
  6. import java.util.Comparator;  
  7. import java.util.List;  
  8.   
  9. public class SortTest  
  10.       
  11.       
  12.       
  13.     public static void main(String[] args)  
  14.         List lists new ArrayList();  
  15.         List list new ArrayList();  
  16.         List listB new ArrayList();  
  17.         lists.add("5");  
  18.         lists.add("2");  
  19.         lists.add("9");  
  20.         //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序  
  21.         Collections.sort(lists);  
  22.           
  23.         aa new A();  
  24.         aa.setName("aa");  
  25.         aa.setOrder(1);  
  26.         bb new A();  
  27.         bb.setName("bb");  
  28.         bb.setOrder(2);  
  29.         list.add(bb);  
  30.         list.add(aa);  
  31.         //list中的对象A实现Comparable接口  
  32.         Collections.sort(list);  
  33.           
  34.         ab new B();  
  35.         ab.setName("ab");  
  36.         ab.setOrder("1");  
  37.         ba new B();  
  38.         ba.setName("ba");  
  39.         ba.setOrder("2");  
  40.         listB.add(ba);  
  41.         listB.add(ab);  
  42. /=================================================================================
  43.         //根据Collections.sort重载方法来实现  
  44.         Collections.sort(listB,new Comparator(){  
  45.             @Override  
  46.             public int compare(B b1, b2)  
  47.                 return b1.getOrder().compareTo(b2.getOrder());  
  48.              
  49.               
  50.         });  
  51.     
  52. /=================================================================================
  53.       
  54.         System.out.println(lists);  
  55.         System.out.println(list);  
  56.         System.out.println(listB);  
  57.           
  58.      
  59.   
  60.  
  61.   
  62. class implements Comparable{  
  63.     private String name;  
  64.     private Integer order;  
  65.     public String getName()  
  66.         return name;  
  67.      
  68.     public void setName(String name)  
  69.         this.name name;  
  70.      
  71.       
  72.     public Integer getOrder()  
  73.         return order;  
  74.      
  75.     public void setOrder(Integer order)  
  76.         this.order order;  
  77.      
  78.     @Override  
  79.     public String toString()  
  80.         return "name is "+name+order is "+order;  
  81.      
  82.     @Override  
  83.     public int compareTo(A a)  
  84.         return this.order.compareTo(a.getOrder());  
  85.      
  86.       
  87.  
  88.   
  89. class B{  
  90.     private String name;  
  91.     private String order;  
  92.     public String getName()  
  93.         return name;  
  94.      
  95.     public void setName(String name)  
  96.         this.name name;  
  97.      
  98.     public String getOrder()  
  99.         return order;  
  100.      
  101.     public void setOrder(String order)  
  102.         this.order order;  
  103.      
  104.     @Override  
  105.     public String toString()  
  106.         return "name is "+name+order is "+order;  
  107.      
  108.  
  109.   
  110. 打印的结果为:  
  111.  [259 
  112. [name is aa order is 1name is bb order is 2 
  113. [name is ab order is 1name is ba order is 2
原创粉丝点击