赞
踩
hashset底层其实维护的是一个HashMap实例。底层数据结构是哈希表。综合了数组和链表的优点。其有以下等特点:
(1) 不允许存放重复值的集合(通过hashCode()函数及equals()函数来判断是否重复)。
(2)不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也可能发生变化 (内部维护的是hashmap,采用hash取模确定数组索引位置,然后在存入链表)。
(3) HashSet是非线程安全的。
(4) 集合元素值可以是nul。
- /**
- * 维护的hashMap实例
- */
- private transient HashMap<E,Object> map;
-
-
- /**
- * 无参构造器,创建一个hashMap实例,默认的加载因子是0.75
- */
- public HashSet() {
- map = new HashMap<>();
- }
-
- /**
- * 包含指定集合的构造函数
- */
- public HashSet(Collection<? extends E> c) {
- map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16));
- addAll(c);
- }
-
- /**
- * 指定初始容量及加载因子的构造函数
- */
- public HashSet(int initialCapacity, float loadFactor) {
- ma
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。