JAVA中Collections代码详解

来源:互联网 发布:ibm电池修复软件 编辑:程序博客网 时间:2024/06/01 07:59
package com.jiuqi.util;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;


/**
 * @author xuhaiyang
 * @version 2016-12-16
 */
public class CollectionsTest {
/**
*  ?:表示通配符
 * <? extends T>    表示类型的上限,表示参数化类型是T或者T的子类
 * <? super T>   表示类型的下限,表示参数化类型是此类型的超类型(父类型),直至Object
 * 
*/
public static void main(String[] args) {
List<String> lists = new ArrayList<String>();
List<A> list = new ArrayList<A>();
List<B> listB = new ArrayList<B>();
lists.add("5");
lists.add("2");
lists.add("9");
//lists中的对象String,本身含有compareTo的方法,所以直接调用sort方法,按自然顺序排序,即升序排序
Collections.sort(lists);
 
A aa = new A();
aa.setName("aa");
aa.setOrder(1);  
     A bb = new A();  
     bb.setName("bb");  
     bb.setOrder(2);  
     list.add(bb);  
     list.add(aa);  
     //list中的对象A实现Comparable接口  
     Collections.sort(list);
     
     B ab = new B();  
     ab.setName("ab");  
     ab.setOrder("1");  
     B ba = new B();  
     ba.setName("ba");  
     ba.setOrder("2");  
     listB.add(ba);  
     listB.add(ab);  
     //根据Collections.sort重载方法来实现  
     Collections.sort(listB,new Comparator<B>(){  
         @Override  
         public int compare(B b1, B b2) {  
             return b1.getOrder().compareTo(b2.getOrder());  
         }  
           
     });  
       
     System.out.println(lists);  
     System.out.println(list);  
     System.out.println(listB); 
 
}

}
class A implements Comparable<A>{  
    private String name;  
    private Integer order;  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
      
    public Integer getOrder() {  
        return order;  
    }  
    public void setOrder(Integer order) {  
        this.order = order;  
    }  
    @Override  
    public String toString() {  
        return "name is "+name+" order is "+order;  
    }  
    @Override  
    public int compareTo(A a) {  
        return this.order.compareTo(a.getOrder());  
    }  
      
}
class B{  
    private String name;  
    private String order;  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public String getOrder() {  
        return order;  
    }  
    public void setOrder(String order) {  
        this.order = order;  
    }  
    @Override  
    public String toString() {  
        return "name is "+name+" order is "+order;  
    }  
}  
  
0 0
原创粉丝点击