1 package com.jdk7.chapter4;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.Comparator;
6 import java.util.List;
7
8 public class MyComparator implements Comparator {
9
10 /**
11 * o1<o2 return 1;
12 * o1=o2 return 0;
13 * o1>o2 return -1;
14 * 比较结果为1才是符合自定义排序的
15 */
16 @Override
17 public int compare(Object o1, Object o2) {
18 int num1 = ((Integer)o1).intValue();
19 int num2 = ((Integer)o2).intValue();
20 if(num1 < num2){
21 return 1;
22 }else if(num1 == num2){
23 return 0;
24 }
25 return -1;
26 }
27
28 public void printArray(List list){
29 if(list==null){
30 System.out.println("列表为空无法排序!");
31 }
32 System.out.print("队列展示为: ");
33 for(int i=0;i<list.size();i++){
34 System.out.print(list.get(i)+" ");
35 }
36 System.out.println();
37 }
38
39 public static void main(String[] args) {
40 MyComparator myComparator = new MyComparator();
41 List list = new ArrayList();
42 list.add(1);
43 list.add(4);
44 list.add(2);
45 list.add(6);
46 list.add(9);
47 list.add(8);
48 System.out.println("默认排序后的队列展示为:");
49 Collections.sort(list);
50 myComparator.printArray(list);
51 System.out.println("自定义排序后的队列展示为:");
52 Collections.sort(list, myComparator);
53 myComparator.printArray(list);
54 }
55
56 }
57
58 执行结果:
59 默认排序后的队列展示为:
60 队列展示为: 1 2 4 6 8 9
61 自定义排序后的队列展示为:
62 队列展示为: 9 8 6 4 2 1