设计模式 ( 十八 ) 策略模式Strategy(对象行为型)(转载)
将比较的方法封装到单独的一个类中,做到实体类和方法类分离。方法类实现Comparator接口。
在上一片博客中,是用冒泡排序法进行排序,在实际的应用中,我们直接调用Collections类中的sort方法即可,具体请看jdk帮助文档。
1 package hl7_11;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.Comparator;
6 import java.util.List;
7 import java.util.Set;
8 import java.util.TreeSet;
9
10 public class SetSort {
11 public static void main(String args[]){
12 List<Student0> list = new ArrayList();
13 list.add(new Student0(1,"z"));
14 list.add(new Student0(3,"y"));
15 list.add(new Student0(4,"c"));
16 list.add(new Student0(2,"x"));
17 Collections.sort(list, new Com());
18 for(Student0 s : list)
19 System.out.println(s);
20 }
21 }
22
23 class Student0 {
24 int id;
25 String name;
26 public Student0(){}
27 public Student0(int id, String name) {
28 this.id = id;
29 this.name = name;
30 }
31
32 public int getId() {
33 return id;
34 }
35 public void setId(int id) {
36 this.id = id;
37 }
38 public String getName() {
39 return name;
40 }
41 public void setName(String name) {
42 this.name = name;
43 }
44 @Override
45 public String toString() {
46 return "Student0 [id=" + id + ", name=" + name + "]";
47 }
48
49 }
50 class Com implements Comparator<Student0>{
51 @Override
52 public int compare(Student0 o1, Student0 o2) {
53 return (o1.getId() > o2.getId()) ? 1 : (o1.getId() == o2.getId() ? 0 : -1);
54 }
55 }