set集合中是怎么确保集合元素的唯一性?

[复制链接]
查看11 | 回复1 | 2011-10-16 11:10:27 | 显示全部楼层 |阅读模式
他的实现原理是什么?求高手解答
回复

使用道具 举报

千问 | 2011-10-16 11:10:27 | 显示全部楼层
因为java的collection很多都需要hashCode(),例如HashTable比如说你往里面存了一个值,你在取这个值的时候,java实际上通过hashCode()来找那个值,因为这样通常比较快。如果你覆盖了equals()方法,意味着原来不相等的两个对象现在可能变得相等,但hashCode()的值却不相等,这样你使用HashTable就会出现存进去的东西找不到。不要忽略这个问题,因为HashTable等等类用的非常多,很可能就在一个你不知道的地方间接地用到了。java类的一个原则就是:你定义的任何类,都要考虑覆盖equals和hashCode方法。否则你的类就不能给其他人或其他地方用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行