黑马程序员技术交流社区
标题:
TreeSet中的compareTo比较问题
[打印本页]
作者:
刘文飞
时间:
2012-11-21 18:47
标题:
TreeSet中的compareTo比较问题
本帖最后由 刘文飞 于 2012-11-21 21:30 编辑
import java.util.*;
class TreeSetDemo01
{
public static void main(String[] args)
{
TreeSet ts = new TreeSet();
ts.add(new Person("lili",20));
ts.add(new Person("lili",21));
ts.add(new Person("lili",22));
ts.add(new Person("lili",23));
System.out.println(ts);
}
}
class Person implements Comparable
{
private String name;
private int age;
public Person(String name,int age)
{
this.name = name;
this.age = age;
}
public int compareTo(Object obj)
{
// if(!(obj instanceof Person))
// {
// throw new RuntimeException("Not Person!!");
// }
// Person per = (Person)obj;
// if(this.age>per.age)
// {
// return 1;
// }
// if(this.age==per.age)
// {
// return 0;
// }
// return -1;
return 1; //1示当前对象大于需要比较的对象,那么后面存入的应该都是放在二叉树的左侧的,
//那么输出应该是与输入顺序相反的啊??
}
public String toString()
{
return this.name + "---" + this.age;
}
}
复制代码
/*Output:
G:\hezi\Code>java TreeSetDemo01
[lili---20, lili---21, lili---22, lili---23]
*/
作者:
张学永
时间:
2012-11-21 18:54
你搞反了。。。当前对象是后放入的元素,它会和集合里已经有的元素比较,所以是后进去的元素
调用compareTo()方法和集合里已经有的对象做比较,返回正数往右边放,返回负数往左边放。返回0就相同了。。。
作者:
刘文飞
时间:
2012-11-21 21:30
张学永 发表于 2012-11-21 18:54
你搞反了。。。当前对象是后放入的元素,它会和集合里已经有的元素比较,所以是后进去的元素
调用compareTo ...
额,谢谢歌神了:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2