容器排序——策略模式

 

设计模式 ( 十八 ) 策略模式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 }
原文地址:https://www.cnblogs.com/cxy2016/p/7152446.html