HashSet存储特征:
- 无序
- 不重复
- 线程不安全
- 允许有null元素
无序:
在HashSet中底层是使用HashMap存储元素的。HashMap底层使用的是数组和链表实现元素存储的。元素在数组中存放时,并不是有序存放的,也不是随机存放的,而是对元素的哈希值进行计算决定元素在数组中的位置。
不重复:
当两个元素的哈希值进行运算后得到相同的位置时,会调用equals()方法判断两个元素是否相同。如果相同则不会添加该元素,如果不变通则会使用单向链表保存该元素。
微信扫一扫
HashSet存储特征:
无序:
在HashSet中底层是使用HashMap存储元素的。HashMap底层使用的是数组和链表实现元素存储的。元素在数组中存放时,并不是有序存放的,也不是随机存放的,而是对元素的哈希值进行计算决定元素在数组中的位置。
不重复:
当两个元素的哈希值进行运算后得到相同的位置时,会调用equals()方法判断两个元素是否相同。如果相同则不会添加该元素,如果不变通则会使用单向链表保存该元素。
相关推荐