A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SHISY 中级黑马   /  2015-6-12 20:50  /  201 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    线程不安全,存取速度快
(1)底层结构为哈希表结构,即区分元素时使用hash值。可以通过hashCode与equals方法的重写,保证元素唯一性。
(2)具体代码体现为:先判断哈希值是否相等,再判断equals方法是否返回true。true则为相同元素,存储元素失败,false则为不同元素,存储元素成功。
使用HashSet:
a.存储自定义对象时,判断的是对象的hash值,如果hash值不同,再判断equals方法比较的结果,如果hash值相同,并且equals比较结果为true则为同一个对象。
b.hash值不等:直接判断两元素不同,加入到集合中。
c.hash值相等:
equals方法返回结果为true,则两元素相同,不加入到集合中
equals方法返回结果为false,则两元素不相同,加入到集合中
d.如果想让某个类型的对象,根据内容判断是否是相同的对象,则需要将这个类型的hashCode方法与equals方法重写,按照自己的逻辑。
注意:
在add方法时,判断两元素是否相等,调用的方法是新加入对象的方法,将老对象依次作为参数传入这个方法中。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马