本帖最后由 陈腾跃_2013 于 2013-3-15 09:11 编辑
有点乱,在此请教
有一个person类
class Person implements comparable //实现comparable
{
private String name;
private int age;
public int compareTo(Object obj) //复写compareTo
{
……………………//省略
}
……………………//省略构造函数,属性方法等
}
class Demo
{
public static void main(String[] args)
{
TreeSet ts = new TreeSet(new MyCompare); //传入Comparator的子对象
ts.add(new Person("name01",22));
ts.add(new Person("name02",23));
……………………//省略添加对象
……………………//省略输出
}
}
class MyCompare implements Comparator
{
public int compare(Object 01, Object 02)
{
……………………//省略比较条件
}
}
我知道,传入TreeSet中的对象需要具备比较性。
Person实现了“comparable”且复写了“ compareTo”不是已经具备比较性了吗?
为什么TreeSet的构造函数中还传入一个自定义“Comparator”的子类,且其中有“ compare”方法。
我有点乱和疑惑,这四个(红色标注)之间到底是什么关系?功能上有什么分工或差异吗?
|