Set怎么实现不重复

loyaya1018 2009-06-07 09:06:10
如题
...全文
164 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
izard999 2009-06-07
  • 打赏
  • 举报
回复
set的实现类都有重写hashCode() 和 equals()
izard999 2009-06-07
  • 打赏
  • 举报
回复
看这个吧

boolean add(E e)如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。更确切地讲,如果此 set 没有包含满足 (e==null ? e2==null : e.equals(e2)) 的元素 e2,则向该 set 中添加指定的元素 e。如果此 set 已经包含该元素,则该调用不改变此 set 并返回 false。结合构造方法上的限制,这就可以确保 set 永远不包含重复的元素。
上述规定并未暗示 set 必须接受所有元素;set 可以拒绝添加任意特定的元素,包括 null,并抛出异常,这与 Collection.add 规范中所描述的一样。每个 set 实现应该明确地记录对其可能包含元素的所有限制。


指定者:
接口 Collection<E> 中的 add
参数:
e - 要添加到 set 中的元素
返回:
如果 set 尚未包含指定的元素,则返回 true



说的很清楚了. 不用你去实现, Set接口的实现类已经帮你封装好了.. 在add的时候他会判断该集合里面是否已有此对象。如果有则不会改变集合,return false; 否则添加,,return true; 想了解实现过程去搜下JDK源码吧
weiluo12 2009-06-07
  • 打赏
  • 举报
回复
放入的对象重写equals() 和 hashcode() 方法
set的特性是无序和唯一!
fyofmee 2009-06-07
  • 打赏
  • 举报
回复
重写equals() 和 hashcode() 方法
CJljfn 2009-06-07
  • 打赏
  • 举报
回复
看源代码

62,614

社区成员

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

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