简单模拟Comparable-策略模式
2012-05-29 18:32
197 查看
//使一个类本身具备比较性 //优点:实现此接口的类可以自己重写自己规定比较的内容 //缺点:因为只有一个方法,一个类只能有一种方式进行比较 public interface MyComparable<E> { public int compareTo(E e); }
//人 public class Person implements MyComparable{ private int age; public Person(int age) { super(); this.age = age; } public int compareTo(Object e) { if(e instanceof Person){ Person temp=(Person)e; if(this.age>temp.getAge())return 1; else if(this.age<temp.getAge()) return -1; return 0; } throw new RuntimeException("传递参数错误,比较失败"); } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
//排序类 public class DataSort { public static void sort(Object[] objs){ for(int i=0;i<objs.length-1;i++){ for(int j=i+1;j<objs.length;j++){ MyComparable c1=(MyComparable)objs[i]; MyComparable c2=(MyComparable)objs[j]; if(c1.compareTo(c2)>0){ Object temp=objs[i]; objs[i]=objs[j]; objs[j]=temp; } } } } }
public class Test { public static void main(String[] args) { Person[] ii={new Person(4),new Person(7),new Person(2),new Person(9)}; DataSort.sort(ii); // System.out.println(Arrays.toString(ii)); for(Person p:ii){ System.out.println(p.getAge()); } } /** * 运行结果: * 2 * 4 * 7 * 9 */ }
相关文章推荐
- 简单模拟Comparator-策略设计模式
- 简单模拟Comparator-策略设计模式-马士兵设计模式教程
- 策略模式 刚刚学习 大家简单了解一下
- 简单工厂与策略模式
- 设计模式-iterator 简单模拟ArrayList与LinkList
- 设计模式之策略模式(Strategy)&&Comparable、Comparator接口
- 简单工厂组合策略模式_反射
- 简单工厂设计模式实现商店买牙膏收费案例过渡到结合策略模式的理由全解
- 用最简单的例子理解策略模式(Strategy Pattern)
- 【机房重构】——策略模式+简单工厂计算消费
- 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别
- Silverlight实用窍门系列:33.OOB模式下WebBrowser的简单应用--模拟浏览器和百度地图【附带源码实例】
- 简单模拟ArrayList-迭代器设计模式
- 设计模式——策略模式:会员价格体系的简单实现
- java 设计模式 策略模式,comparable 接口,compareTo 方法
- Java实现策略模式的简单应用
- 设计模式——《大话设计模式》——简单工厂模式+策略模式+策略与简单工场结合
- JDK设计模式之——策略模式(Comparable和Comparator接口)
- 大话设计模式-策略模式与简单工厂模式
- 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别