关于TreeSet 自定义类比较问题
求大神告诉解决TreeSet 自定义类 比较问题,因为TreeSet要添加自定义类时 需要将这个类实现一个Comparable的接口 或是在创建TreeSet对象的时候 传入一个比较器,但是因为这两个接口要重写的方法的返回值都是int类型的。。。所以小弟疑惑要是比较整数的就可以 ,但是要比较double类型或其它类型 要怎么比较呢,因为我觉得如果把double类型强制转换为int类型的话这样不好。。。求大神给点解题思路
------解决方案--------------------返回的int型不是这个意思 它只是一个标志 通常大于时返回一个正数,小于时返回一个负数,等于时返回零 这三个数据treeset自己能认识 他就像定的一个标准
------解决方案--------------------贴代码 不理解你的意思
------解决方案--------------------
public int compareTo(Object o) {
if(o instanceof Book1){
Book1 b=(Book1)o;
if(this.price>b.price){
return 1;
}
if(this.price<b.price){
return -1;
}else{
return 0;
}
}
------解决方案--------------------String 已实现comparable
public int compareTo(Book1 book) {
return this.price.compareTo(book.price);
}
上面的代码也有问题,因为你跟object比较是没意义的
public int compareTo(Book1 book) {
Book1 b=(Book1)o;
if(this.price>b.price){
return 1;
}
if(this.price<b.price){
return -1;
}else{
return 0;
}
------解决方案--------------------累死 我不是比较的price属性么?
------解决方案--------------------我是举个例子 如果price是String类型