科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Comparable接口的用法与排序算法的脱藕

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

排序算法与业务逻辑脱藕的小例子。

作者:鼠标 来源:CSDN 2008年3月17日

关键字: 排序算法 Comparabl java

  • 评论
  • 分享微博
  • 分享邮件

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

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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章