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 }