hashmap默认16,超过后提供加载因子0.75 超过75%自动扩容,不能小于75%(浪费空间),扩容后链表内容重新排序,碰撞概率降低 数组——链表——红黑树 每个链表长度大于8并且总容量大于64,链表会转变成红黑树(除了添加外,都比链表快) hashmap hashset concurrenth ...
分类:
编程语言 时间:
2020-02-05 13:53:11
阅读次数:
83
ArrayList: 明确知道容量:直接设置初始容量,如new ArrayList<>(100)无法确定容量:预估一个比较接近的值,如果实在不确定,则无需指定初始值 (有默认值) HashMap HashMap的默认加载因子为0.75,但可以使用构造器指定,如new HashMap<>(100, 1 ...
分类:
其他好文 时间:
2020-01-15 19:24:13
阅读次数:
86
参考博客: https://www.cnblogs.com/lizhen-home/p/7352125.html首先,这三个概念说下。初始大小,就是创建时可容纳的默认元素个数;加载因子,表示某个阀值,用0~1之间的小数来表示,当已有元素占比达到这个阀值后,底层将进行扩容操作;扩容方式,即指定每次扩容... ...
分类:
其他好文 时间:
2019-12-26 21:04:10
阅读次数:
75
一、HashSet 构造方法: HashSet() :构造一个新的空 set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75 源码: 二、LinkedHashSet 构造方法: LinkedHashSet(): 构造一个带默认初始容量 (16) 和加载因子 (0.75) 的 ...
分类:
编程语言 时间:
2019-12-21 20:29:59
阅读次数:
57
装填因子:a=n/m 其中n 为关键字个数,m为表长。加载因子是表示Hsah表中元素的填满的程度.若:加载因子越大,填满的元素越多,好处是,空间利用率高了,但:冲突的机会加大了.反之,加载因子越小,填满的元素越少,好处是:冲突的机会减小了,但:空间浪费多了.冲突的机会越大,则查找的成本越高.反之,查 ...
分类:
其他好文 时间:
2019-11-05 01:11:59
阅读次数:
71
HashMap 简介 HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突 ...
分类:
其他好文 时间:
2019-10-25 16:41:36
阅读次数:
133
包装类:对基本数据类型的包装,包装成引用数据类型(byte short int long float double boolean char) 基本数据类型对应的引用数据类型为:Byte Short Int Long Float Double Boolean character 七种包装类(Char ...
分类:
其他好文 时间:
2019-10-23 22:22:07
阅读次数:
70
这里要讨论这些常用的默认初始容量和扩容的原因是: 当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。 加载因子的系数小于等于1,意指 即当 元素个数 超过 容 ...
分类:
其他好文 时间:
2019-10-01 20:54:03
阅读次数:
104
ConcurrentHashMap数据结构 ConcurrentHashMap相比HashMap而言,是多线程安全的,其底层数据与HashMap的数据结构相同,数据结构如下: 说明:ConcurrentHashMap的数据结构(数组+链表+红黑树),桶中的结构可能是链表,也可能是红黑树,红黑树是为了 ...
分类:
其他好文 时间:
2019-08-10 10:05:46
阅读次数:
81
内容转自:https://blog.csdn.net/Dazhu233/article/details/79596584 先看HashMap的定义: public class HashMap<K,V>extends AbstractMap<K,V> implements Map<K,V>, Clon ...
分类:
其他好文 时间:
2019-08-09 21:12:27
阅读次数:
119