java中的排序

  1 import java.util.*;
  2 
  3 public class CompareT {
  4     public static void main(String[] args) {
  5         /*1*/
  6         A a1 = new A(1);
  7         A a2 = new A(2);
  8         A a3 = new A(3);
  9         A a4 = new A(4);
 10         List<A> a = new LinkedList<A>();
 11         a.add(a2);
 12         a.add(a3);
 13         a.add(a1);
 14         a.add(a2);
 15         a.add(a4);
 16         a.add(a2);
 17         Collections.sort(a);
 18         for(Object aa:a)
 19             System.out.print(aa);
 20         System.out.println();
 21         /*2*/
 22         List<Integer> i = new LinkedList<Integer>();
 23         i.add(3);
 24         i.add(2);
 25         i.add(1);
 26         i.add(5);
 27         i.add(9);
 28         i.add(7);
 29         i.add(5);
 30         Collections.sort(i);
 31         for(Object ii:i)
 32             System.out.print(ii);
 33         System.out.println();
 34         /*3*/
 35         B b1 = new B(1);
 36         B b2 = new B(2);
 37         B b3 = new B(3);
 38         B b4 = new B(4);
 39         List<B> b = new LinkedList<B>();
 40         b.add(b2);
 41         b.add(b3);
 42         b.add(b1);
 43         b.add(b2);
 44         b.add(b4);
 45         b.add(b2);
 46         Collections.sort(b, new Comparator<B>() {
 47 
 48             @Override
 49             public int compare(B o1, B o2) {
 50                 return new Integer(o1.getData()).compareTo(o2.getData());
 51             }
 52             
 53         });
 54         for(Object bb:b)
 55             System.out.print(bb);
 56         System.out.println();
 57         /*4*/
 58         A[] aaa= new A[]{a1,a2,a4,a3,a2,a1};
 59         //Arrays.sort(aaa);//wrong
 60         Arrays.sort(aaa, new Comparator<A>() {
 61 
 62             @Override
 63             public int compare(A o1, A o2) {
 64                 if(o1.getData()==o2.getData())
 65                     return 0;
 66                 else 
 67                     return o1.getData()<o2.getData()?-1:1;
 68             }
 69             
 70         });
 71         for(Object aa:aaa)
 72             System.out.print(aa);
 73         System.out.println();
 74         /*5*/
 75         Integer[] iii = new Integer[]{3,2,1,7,6,5,4,9};
 76         Arrays.sort(iii);
 77         for(Object ii:iii)
 78             System.out.print(ii);
 79         System.out.println();
 80     }
 81 }
 82 
 83 class A implements Comparable<A> {
 84 
 85     A(int data) {
 86         this.data = data;
 87     }
 88     private int data;
 89     
 90     public int getData() {
 91         return data;
 92     }
 93 
 94     public void setData(int data) {
 95         this.data = data;
 96     }
 97 
 98 
 99     @Override
100     public String toString() {
101         return data+"";
102     }
103     @Override
104     public int compareTo(A o) {
105         if(o.data==this.data)
106             return 0;
107         else
108             return this.data<o.data?-1:1;
109     }
110 }
111 
112 class B {
113 
114     B(int data) {
115         this.data = data;
116     }
117     private int data;
118     
119     public int getData() {
120         return data;
121     }
122 
123     @Override
124     public String toString() {
125         return data+"";
126     }
127 }

 

posted @ 2016-08-15 15:16  Kharenah  阅读(209)  评论(0编辑  收藏  举报