一、Set的主要实现类HashSet
Set接口:存储无序的、不可重复的元素,Set中常用的方法都是Collection下定义的。
HashSet(主要实现类):
(1)无序性:不等于随机性,无序指的是元素在底层存储的位置是无序的。
(2)不可重复性:向Set中添加相同元素时,后面添加的元素无法添加。
说明:要求添加进Set中的元素所在的类,一定要重写hashCode()和equals()方法,
用来保证Set中元素的不可重复性(3)元素的存储:使用了哈希算法
当向Set中添加元素时,首先调用此对象的hashCode()方法,计算此对象的哈希值,
决定此对象在Set中的存储位置。若此位置之前无对象存储,则此对象直接存储到这个位置,
若此位置有对象存储,在通过equals()方法比较两个对象是否相同,相同,后一个对象无法存入,
返回false时会都存储,但一般要求hashCode()与equals()方法一致,也就是说保证不同的对象哈希值不同。