这个类的equals方法已经重写了,如下
class myLink{
...
...public String getName(){
return this.name;
}public boolean equals(Object obj){
if(obj == null || !(obj instanceof myLink)
return false;
return ((myLink)obj).getName.equals(this.getName);
}
...
}请问还有什么需要做的东西么?
class myLink{
...
...public String getName(){
return this.name;
}public boolean equals(Object obj){
if(obj == null || !(obj instanceof myLink)
return false;
return ((myLink)obj).getName.equals(this.getName);
}
...
}请问还有什么需要做的东西么?
解决方案 »
- 如何用java编写用 "*"输出菱形
- NIO的SocketChannel向服务器发送数据,服务器端的selector无事件触发
- java多个类共享一个类中的变量,想了好久都不给力啊
- 判断单向链表有循环的算法(只给最佳答案50分)
- 跪求Struts 2 迭代标签实例
- 求助,DOS下运行JAVAC出错
- JLabel中drawRect时出现的问题
- help: 我安装jubilder7后,tool-》..->display改变字体,结果是?????
- 请问各位大侠,如何构建一树型结构?
- 安装jrun后是否还需要配置IIS 或APACHE
- jbx2005 图形界面在design下设计时控件一切换面板就看不到了,只有少数几个能正常看到,运行正常
- 工作
还要重写 hashCode() 方法 他们是用 关键字的equals() 方法和hashCode () 方法来比较一个对象是否相等的
List 中只能按 index 取对象
我也重写了hashCode()方法,是这样写的
public int hashCode(){
return this.getName.hashCode();
}但是还是不行。
Collection myLinks = XXXX.getAllLinks();myLink temp = XXXXX.getInterestLink();if(myLinks.contains(myLink)){......}//就是这句话,即使myLinks中已经有myLink,contains方法也会返回false
setName()方法:private void setName(String name){
this.name = name;
}我通过log跟踪以后发现,在collection集合的hashCode集合里面,包含了我所要查找的对象的
hashCode(),
但是问题是为什么contains方法不管用?
public boolean equals(Object obj){
if(obj == null || !(obj instanceof myLink)
return false;
return ((myLink)obj).getName.equals(this.getName);
}
...
}
这句话编译能够通过?
Collection只是一个接口,它有两个子接口List,Set
而且java.util没有任何一个直接实现Collection的东西,所以如果是Set的话,并且是HashSet的话,就是hashCode有关,其他都和hashCode无关.
Collection接口的不同实现有着不同的要求
光说Collection有什么用啊?
如果用list的话,根本就不用考虑equals