设计模式 ( 十八 ) 策略模式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 }