Comparable接口的用法与排序算法的脱藕

王朝other·作者佚名  2006-12-07
窄屏简体版  字體: |||超大  

在写程序的时候经常会遇到排序的需求,而且这些个客户有时会想女人一样多变。所以将排序算法与业务逻辑脱藕是非常明智的选择。程序员用代码说话,下面是一个例子:(注意该例子抽象的不是很好,仅做脱藕演示之用)

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

/**

* 注意:此类具有与 equals 不一致的自然排序(这句话的含义参见JDK)

*/

public class Person implements Comparable {

private int age;

public int compareTo(Object person) {

return this.age - ((Person) person).getAge();

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String toString() {

return String.valueOf(this.age);

}

public static void main(String[] args) {

List persons = new ArrayList();

for (int i = 0; i < 10; i++) {

Person person = new Person();

person.setAge(30 - i);

persons.add(person);

}

// 注释下面一行看看

Collections.sort(persons);//调用过这个方法后,persons里的元素将按由小到大排列

for (int i = 0; i < persons.size(); i++) {

System.out.println(persons.get(i));

}

}

}

其实,一个好的系统会面临很多很多排序要求所以仅仅Comparable接口是非常不够用的。这时就要用到Comparator接口,也就是大名鼎鼎的“比较器”。有空再把这个的例子写一个出来

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航