手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

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

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
在写程序的时候经常会遇到排序的需求,而且这些个客户有时会想女人一样多变。所以将排序算法与业务逻辑脱藕是非常明智的选择。程序员用代码说话,下面是一个例子:(注意该例子抽象的不是很好,仅做脱藕演示之用)

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接口,也就是大名鼎鼎的“比较器”。有空再把这个的例子写一个出来

上一篇: javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案
下一篇: 使用JasperReports合并多个报表的word文档问题解决方法

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!