热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->java 
站内搜索:
comparable接口的用法与排序算法的脱藕
作者:佚名 来源:不详 整理日期:2007-8-14

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

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

相关文章