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 }