1Set 接口介绍
Set 接口继承自 Collection,List 的方法,在 Set 中仍然适用,
2Set 接口特点
Set 特点:无序、不可重复。无序指 Set 中的元素没有索引,我们只能遍历查找;不可 重复指不允许加入重复的元素。更确切地讲,新元素如果和 Set 中某个元素通过 equals() 方法对比为 true,则只能保留一个。 Set 常用的实现类有:HashSet、TreeSet 等,我们一般使用 HashSet。
3hashset
HashSet 是一个没有重复元素的集合,不保证元素的顺序。而且 HashSet 允许有 null 元 素。HashSet 是采用哈希算法实现,底层实际是用 HashMap 实现的,因此,查询效率和增删效率都比较高。
4:HashSet 存储特征分析
HashSet
是一个不保证元素的顺序且没有重复元素的集合,是线程不安全的。
HashSet
允许有
null
元素。
无序:
在
HashSet
中底层是使用
HashMap
存储元素的。
HashMap
底层使用的是数组与链表实
现元素的存储。元素在数组中存放时,并不是有序存放的也不是随机存放的,而是对元素的
哈希值进行运算决定元素在数组中的位置。
不重复:
当两个元素的哈希值进行运算后得到相同的在数组中的位置时,会调用元素的
equals()
方法判断两个元素是否相同。如果元素相同则不会添加该元素,如果不相同则会使用单向链
表保存该元素。