• Collections.sort的两种用法 转


    Java代码  收藏代码
    1. /** 
    2. * @author guwh 
    3. * @version 创建时间:2011-11-3 上午10:49:36 
    4. * 类说明 
    5. */   
    6. package com.jabberchina.test;  
    7.   
    8. import java.util.ArrayList;  
    9. import java.util.Collections;  
    10. import java.util.Comparator;  
    11. import java.util.List;  
    12.   
    13. public class SortTest {  
    14.       
    15.       
    16.       
    17.     public static void main(String[] args) {  
    18.         List<String> lists = new ArrayList<String>();  
    19.         List<A> list = new ArrayList<A>();  
    20.         List<B> listB = new ArrayList<B>();  
    21.         lists.add("5");  
    22.         lists.add("2");  
    23.         lists.add("9");  
    24.         //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序  
    25.         Collections.sort(lists);  
    26.           
    27.         A aa = new A();  
    28.         aa.setName("aa");  
    29.         aa.setOrder(1);  
    30.         A bb = new A();  
    31.         bb.setName("bb");  
    32.         bb.setOrder(2);  
    33.         list.add(bb);  
    34.         list.add(aa);  
    35.         //list中的对象A实现Comparable接口  
    36.         Collections.sort(list);  
    37.           
    38.         B ab = new B();  
    39.         ab.setName("ab");  
    40.         ab.setOrder("1");  
    41.         B ba = new B();  
    42.         ba.setName("ba");  
    43.         ba.setOrder("2");  
    44.         listB.add(ba);  
    45.         listB.add(ab);  
    46.         //根据Collections.sort重载方法来实现  
    47.         Collections.sort(listB,new Comparator<B>(){  
    48.             @Override  
    49.             public int compare(B b1, B b2) {  
    50.                 return b1.getOrder().compareTo(b2.getOrder());  
    51.             }  
    52.               
    53.         });  
    54.           
    55.         System.out.println(lists);  
    56.         System.out.println(list);  
    57.         System.out.println(listB);  
    58.           
    59.     }  
    60.   
    61. }  
    62.   
    63. class A implements Comparable<A>{  
    64.     private String name;  
    65.     private Integer order;  
    66.     public String getName() {  
    67.         return name;  
    68.     }  
    69.     public void setName(String name) {  
    70.         this.name = name;  
    71.     }  
    72.       
    73.     public Integer getOrder() {  
    74.         return order;  
    75.     }  
    76.     public void setOrder(Integer order) {  
    77.         this.order = order;  
    78.     }  
    79.     @Override  
    80.     public String toString() {  
    81.         return "name is "+name+" order is "+order;  
    82.     }  
    83.     @Override  
    84.     public int compareTo(A a) {  
    85.         return this.order.compareTo(a.getOrder());  
    86.     }  
    87.       
    88. }  
    89.   
    90. class B{  
    91.     private String name;  
    92.     private String order;  
    93.     public String getName() {  
    94.         return name;  
    95.     }  
    96.     public void setName(String name) {  
    97.         this.name = name;  
    98.     }  
    99.     public String getOrder() {  
    100.         return order;  
    101.     }  
    102.     public void setOrder(String order) {  
    103.         this.order = order;  
    104.     }  
    105.     @Override  
    106.     public String toString() {  
    107.         return "name is "+name+" order is "+order;  
    108.     }  
    109. }  
    110.   
    111. 打印的结果为:  
    112.  [2, 5, 9]  
    113. [name is aa order is 1, name is bb order is 2]  
    114. [name is ab order is 1, name is ba order is 2]  
  • 相关阅读:
    MYSQL数据损坏修复方法
    MYSQL数据损坏修复方法
    MYSQL 定时自动执行任务
    MYSQL 定时自动执行任务
    MYSQL 定时自动执行任务
    NLog日志框架使用探究
    NLog日志框架使用探究
    SPFA算法 O(kE)
    codevs 1077 多源最短路
    code vs 2602 最短路径问题
  • 原文地址:https://www.cnblogs.com/sekai/p/6186274.html
Copyright © 2020-2023  润新知