Collections.sort的两个方法

 2023-09-16 阅读 18 评论 0

摘要://Collections.sort(List<?> list) 调用系统Comparable中的compareTo方法进行升序排序//Collections.sort(List<T> list,Comparator<? super T>) 根据指定比较器排序 importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;im
  1. //Collections.sort(List<?> list) 调用系统Comparable中的compareTo方法进行升序排序
  2. //Collections.sort(List<T> list,Comparator<? super T>) 根据指定比较器排序
  3. import java.util.ArrayList;  
  4. import java.util.Collections;  
  5. import java.util.Comparator;  
  6. import java.util.List;  
  7.   
  8. public class SortTest {  
  9.       
  10.       
  11.       
  12.     public static void main(String[] args) {  
  13.         List<String> lists = new ArrayList<String>();  
  14.         List<A> list = new ArrayList<A>();  
  15.         List<B> listB = new ArrayList<B>();  
  16.         lists.add("5");  
  17.         lists.add("2");  
  18.         lists.add("9");  
  19.         //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序  
  20.         Collections.sort(lists);  
  21.           
  22.         A aa = new A();  
  23.         aa.setName("aa");  
  24.         aa.setOrder(1);  
  25.         A bb = new A();  
  26.         bb.setName("bb");  
  27.         bb.setOrder(2);  
  28.         list.add(bb);  
  29.         list.add(aa);  
  30.         //list中的对象A实现Comparable接口  
  31.         Collections.sort(list);  
  32.           
  33.         B ab = new B();  
  34.         ab.setName("ab");  
  35.         ab.setOrder("1");  
  36.         B ba = new B();  
  37.         ba.setName("ba");  
  38.         ba.setOrder("2");  
  39.         listB.add(ba);  
  40.         listB.add(ab);  
  41.         //根据Collections.sort重载方法来实现  
  42.         Collections.sort(listB,new Comparator<B>(){  
  43.             @Override  
  44.             public int compare(B b1, B b2) {  
  45.                 return b1.getName().compareTo(b2.getName());  
  46.             }  
  47.               
  48.         });  
  49.           
  50.         System.out.println(lists);  
  51.         System.out.println(list);  
  52.         System.out.println(listB);  
  53.           
  54.     }  
  55.   
  56. }  
  57.   
  58. class A implements Comparable<A>{  
  59.     private String name;  
  60.     private Integer id;  
  61.     public String getName() {  
  62.         return name;  
  63.     }  
  64.     public void setName(String name) {  
  65.         this.name = name;  
  66.     }  
  67.       
  68.     public Integer getId() {  
  69.         return id;  
  70.     }  
  71.     public void setId(Integer id) {  
  72.         this.id = id;  
  73.     }  
  74.     @Override  
  75.     public String toString() {  
  76.         return "name is "+name+" id is "+id;  
  77.     }  
  78.     // 注意id要用Integer声明,不然下面return语句会出错!
  79.     @Override  
  80.     public int compareTo(A a) {  
  81.         return this.id.compareTo(a.getId());  
  82.     }  
  83.       
  84. }  
  85.   
  86. class B{  
  87.     private String name;  
  88.     private String order;  
  89.     public String getName() {  
  90.         return name;  
  91.     }  
  92.     public void setName(String name) {  
  93.         this.name = name;  
  94.     }  
  95.     public String getOrder() {  
  96.         return order;  
  97.     }  
  98.     public void setOrder(String order) {  
  99.         this.order = order;  
  100.     }  
  101.     @Override  
  102.     public String toString() {  
  103.         return "name is "+name+" order is "+order;  
  104.     }  
  105. }  
  106.   
  107.  

转载于:https://www.cnblogs.com/IT-utopia/p/3262491.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/65665.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息