集合
文章平均质量分 90
java的集合框架
weixin_43471422
这个作者很懒,什么都没留下…
展开
-
ArrayList源码分析
文章目录ArrayListArrayList 简介ArrayList源码解读首先来看看ArrayList的细粒度继承关系特点:类属性构造方法get()set()add()remove()remove(int index)remove(Object o)indexOf()总结 ArrayList 此处ArrayList以JDK8标准为主 ArrayList 简介 ArrayList底层是一个其容量能够动态增长的动态数组。但是它又和数组不一样,下面会分析对比。它继承了AbstractList,实现了Lis原创 2021-09-18 14:34:54 · 39 阅读 · 0 评论 -
Hashtable源码解读
以JDK8为准 文章目录Hashtable简介源码解读类属性初始化内部类Entry内部类KeySetput()rehash()get()键集(keySet)和键值集(entrySet)clear() Hashtable简介 HashTable同样是基于哈希表实现的,同样每个元素都是key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阈值)时,同样会自动增长。 Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。 Hashtable同样实现了Ser原创 2021-09-18 14:35:38 · 47 阅读 · 0 评论 -
HashMap源码分析
get到一个大佬的博客:hashmap源码分析 文章目录HashMap简介源码分析类属性内部类注意:构造函数hash()put()resize()HashMap总结(面试) HashMap简介 HashMap是使用拉链法(数组+链表)的方式实现的,并且某个链表长度过长时,会将该链表转换成红黑树提高性能。 而HashMap的内部数组长度初始为16,如果需要扩展数组,那么规定是2的次方。例如16会扩充到32–>64–>128–>256–>512… 这样扩充有两个原因: 选择足够大原创 2021-11-03 21:09:59 · 44 阅读 · 0 评论 -
ConcurrentHashMap源码分析
简书大佬:https://www.jianshu.com/p/d0b37b927c48 文章目录简介源码分析类常数类属性内嵌类初始化table初始化put()扩容get()Hashtable区别总结 简介 说到ConcurrentHashMap之前,我们再谈一下HashMap和Hashtable。 HashMap是一个线程不安全类,在多线程下(环境为JDK1.7),由于其put()方法底层散列时使用的是头插法,所以容易引起HashMap死链现象,造成程序的阻塞。虽然JDK1.8已经改为了尾插法,但Has原创 2021-09-17 15:38:59 · 51 阅读 · 0 评论