首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Comparable接口 兑现类的自动排序

2012-10-21 
Comparable接口实现类的自动排序public class Duck implements Comparable {//实现了comparable接口的对象

Comparable接口 实现类的自动排序

public class Duck implements Comparable {//实现了comparable接口的对象可以使用Arrays.sort(object[])或者Collections.sort(list)进行排序;private String name;private int weight;@Overridepublic int compareTo(Object o) { // a.comparableTo(b) 与0比较Duck oDuck = (Duck) o;if(this.weight > oDuck.weight){return 1;}else if(this.weight < oDuck.weight){return -1;}else {return 0;}}public Duck(String name, int weight) {super();this.name = name;this.weight = weight;}@Overridepublic String toString() {return name + "\tweight :  " + weight;}}



测试:

import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Collections;public class MainTest {public static void main(String[] args) {int numDuck = 3;Duck duck[] = new Duck[3];duck[0] = new Duck("duck1", 25);duck[1] = new Duck("duck2", 23);duck[2] = new Duck("duck3", 24);//Arrays.sort(duck);   //排序1?              ArrayList<Duck> list = new ArrayList<Duck>();   //排序2for (int i = 0; i < 3; i++) {list.add(duck[i]);}Collections.sort(list);for (int i = 0; i < 3; i++) {System.out.println(list.get(i));}}}

总结:接口comparable中使用了模板方法模式,在子类中我们只需要实现comparableTo() 方法定义排序的语法规则即可,至于具体的排序算法都由?模板方法(sort())来实现。???????? ====模板方法模式

热点排行