关于HashSet保证自定义对象唯一性的问题

scorpion6 2006-12-06 06:57:08
在java中,HashSet集合类能够保证加入不同的基本数据类型。对于自定义的一个类型,比如
class MyObject{
int i;
String s;
MyObject(int i,String s){
this.i=i;
this.s=s;
}
}
我新建了两个不同的对象MyObject ob1=new MyObject(1,"haha");MyObject ob2=new MyObject(1,"haha");怎么保证HashSet只能加入一个对象呢?(即认为ob1和ob2是相同的)
...全文
211 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aniude 2006-12-06
  • 打赏
  • 举报
回复
看错!!汗!楼上对的,添加类的equals方法覆盖object的equals
fool_leave 2006-12-06
  • 打赏
  • 举报
回复
MyObject加两个方法,如下:

class MyObject{
int i;
String s;
MyObject(int i,String s){
this.i=i;
this.s=s;
}

public int hashCode() {
return s.hashCode();
}

public boolean equals(Object o) {
if(o==null ||!( o instanceof MyObject)){
return false;
}
MyObject ob=(MyObject)o;
return s.equals(ob.s)&&i==ob.i;
}
}
aniude 2006-12-06
  • 打赏
  • 举报
回复
HashMap 判断是否相同是基于"key"的

62,612

社区成员

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

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