三个(java基础)问题

fengliu212 2004-06-23 03:55:41
import java.util.*;
class mycomp implements Comparator{
public int compare (Object a,Object b){
String astr,bstr;
astr=(String)a;
bstr=(String)b;
return bsr.compareTo(astr);
}
// 为什么不要重写equals()方法呢?
}

class compDemo {
public static void main(String[] args) {
TreeSet ts=new TreeSet(new mycomp());
ts.add("C");
ts.add("A");
ts.add("B");
ts.add("E");
ts.add("F");
ts.add("D");
Iterator i=ts.iterator();
while(i.hasNext()) {
Object element=i.next();
System.out.print(element + " ");
}
System.out.println();
}
}

请问输出结果为什么是逆向输出啊?
参数object a, object b 的值怎么得到?
为什么不要重写equals()方法呢?
...全文
167 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengliu212 2004-06-24
  • 打赏
  • 举报
回复
接口Comparator有equals方法 应该在mycomp类中要覆盖equals()啊

1.有人说:Set 是不允许相同的元素,所以不用重写equals 不知对不对?
2.Object类有equals()方法 所以不要写了 不知我想的对吗


A. reeset按升序排列 逆向是“return bsr.compareTo(astr);” 这条语句的作用(书上
讲的 我不明白) 是由bstr----而不是astr---调用compareTo why?
B. 有人说:Treeset 会自动用你写的compare去排列String的顺序,顺序可能是从大到小,所以z - a 不知对不对?


参数a b的值我不能理解
blasterboy 2004-06-23
  • 打赏
  • 举报
回复
参数object a, object b 的值怎么得到?

是调用这个方法的类传进来的
blasterboy 2004-06-23
  • 打赏
  • 举报
回复
不用重写equals方法,你为什么要重写equals方法?


结果为什么是逆向输出啊?

因为treeset有一套自己的排序方法,你可以看看他的方法
mygerald 2004-06-23
  • 打赏
  • 举报
回复
堆栈的机制
joy_wind 2004-06-23
  • 打赏
  • 举报
回复
为什么要重写equals方法?

ecaol 2004-06-23
  • 打赏
  • 举报
回复
UP

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧