sort()排序 collections.sort();

 

1.main方法:html

public class Test {

    public static void main(String[] args) {
        /**
         * 
         * sort()方法詳解
         * 1.Collections.sort(List<T> list) 
         *         根據元素的天然順序 對指定列表按升序進行排序。
         * 2.Collections.sort(List<T> list, Comparator<? super T> c) 
         *         根據指定比較器產生的順序對指定列表進行排序。
         * 
         */
        List<Integer> list = new ArrayList<Integer>();
        list.add(3);
        list.add(1);
        list.add(2);
        //天然順序
        Collections.sort(list);
        for(Integer i:list){
            System.out.println(i);
        }
        
        System.out.println("===============================================");
        
        Point point2 = new Point(2,2,2);
        Point point1 = new Point(1,1,1);
        Point point3 = new Point(3,1,2);
        
        List<Point> points = new ArrayList<Point>();
        points.add(point2);
        points.add(point1);
        points.add(point3);
        
        System.out.println("===============================================");
        //根據point中的升序輸出
        Collections.sort(points, new SortByXdesc());
        for(Point point:points){
            System.out.println("x:"+point.getX()+" y:"+point.getY()+" z:"+point.getZ());
        }
        
        System.out.println("===============================================");
        //根據point中的x降序輸出
        Collections.sort(points, new SortByXasc());
        for(Point point:points){
            System.out.println("x:"+point.getX()+" y:"+point.getY()+" z:"+point.getZ());
        }
    }

}

 

 

2.降序輸出類SortByXdesc:java

public class SortByXdesc implements Comparator<Object> {

    //根據point中的x降序輸出
    @Override
    public int compare(Object o1, Object o2) {
        Point point1 =(Point)o1;
        Point point2 =(Point)o2;
        if(point1.getX()>point2.getX()){
            return 1;
        }else{
            return 0;
        }
    }

}

 

3.升序輸出類SortByXasc:ide

public class SortByXasc implements Comparator<Object> {

    //根據point中的x升序輸出
    @Override
    public int compare(Object o1, Object o2) {
        Point point1 =(Point)o1;
        Point point2 =(Point)o2;
        if(point1.getX()>point2.getX()){
            return 0;
        }else{
            return 1;
        }
    }
}

 

轉:http://www.blogjava.net/secret/archive/2011/12/03/352813.htmlspa

相關文章
相關標籤/搜索