java中Comparable的例子和用法

3.5 Comparable的用法  

马克-to-win:前面讲过进入TreeSet的每个元素是都排了序的,如果被添加的元素是我们自己定义的,就需要告诉TreeSet排序的规则,这个规则就要在Comparable中定义。在下面的例子中, 当我们要往TreeSet中添加我们自己定义的类Worker对象时,就在compareTo中定义排序规则。

例:3.5.1 

/*why in the past never implements Comparable? becasue Integer claas and
String class both implements this Comparable.
java.lang.Object
java.lang.String
All Implemented Interfaces:
CharSequence, Comparable, Serializable
 */
import java.util.*;
//Comparable接口在java.lang包中定义
//定义的方法:
//int compareTo(Object o);
//实现该接口就可以实现按用户定义的自然顺序排列对象。
/*you must implements Comparable,otherwise, when you add the second element into
 the treeset, it will report error, because it will search for Comparable
 interface. */
class Worker implements Comparable {
    int workNum;
    String name;
    int money;

    public Worker(int workNum, String name, int money) {
        this.workNum = workNum;
        this.name = name;
        this.money = money;
    }

    // 按工资排序
    /*
     * public int compareTo(Object o) Returns: a negative integer, zero, or a
     * positive integer as this object is less than, equal to, or greater than
     * the specified object. it looks like that the one that is in front is
     * small. what if two keys are the same? only print out one item.
     */
    public int compareTo(Object o) {
        Worker e = (Worker) o;
        return money - e.money;//到底谁减谁,讲师如想搞清楚,请听配套视频里的仔细分析。
        // return workNum - e.workNum;

    }

}

更多请见:http://www.mark-to-win.com/tutorial/java_7_DefinitionUsageOfComparable.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值