集合框架库
文章平均质量分 84
weixin_46078315
这个作者很懒,什么都没留下…
展开
-
HashMap put/resize源码分析
文章目录HashMap简介源码分析继承和实现属性节点类型Node内部类红黑树的节点构造方法构造器1构造器2构造器3构造器4putgetresize基于JDK1.7的优化底层实现hashput扩容HashMap简介HashMap 底层采用哈希表结构 数组加链表加红黑树实现,允许储存null键和null值数组优点:通过数组下标可以快速实现对数组元素的访问,效率高链表优点:插入或删除数据不需要移动元素,只需要修改节点引用效率高源码分析继承和实现public class HashMap<K,V原创 2021-04-20 22:37:24 · 493 阅读 · 1 评论 -
Hashmap和Hashtable区别和联系
文章目录Hashmap和Hashtable的区别和联系Hashtable区别和联系1.继承和实现2.属性3.构造器默认初始容量上:3.方法hash()方法迭代器扩容key和value是否可以为nullHashmap和Hashtable的区别和联系Hashtable出现于 JDK1.0,是线程安全的集合,底层使用哈希表实现区别和联系1.继承和实现Hashtablepublic class Hashtable<K,V> extends Dictionary<K,V>原创 2021-02-20 21:27:01 · 582 阅读 · 1 评论 -
Priorityquque源码分析
Priorityqueue 1.5优先级队列 底层基于小根堆数组实现PriorityQueue也是Queue的一个继承者,相比于一般的列表,它的特点便如它的名字一样,出队的时候可以按照优先级进行出队,所以不像LinkedList那样只能按照插入的顺序出队,PriorityQueue是可以根据给定的优先级顺序进行出队的。这里说的给定优先级顺序既可以是内部比较器,也可以是外部比较器。PriorityQueue内部是根据小顶堆的结构进行存储的,所谓小顶堆的意思,便是最小的元素总是在最上面,每次出队总是将堆顶元原创 2020-12-19 20:08:14 · 130 阅读 · 3 评论 -
Arraydeque源码分析
ArrayDeque1.6ArrayDeque是JDK容器中的一个双端队列实现,内部使用数组进行元素存储,不允许存储null值,可以高效的进行元素查找和尾部插入取出,是用作队列、双端队列、栈的绝佳选择,性能比LinkedList还要好,1.6引入问题:为什么要用循环数组 ? 由于一般的数组实现的队列结构在频繁出队的情况下,会产生假溢出现象,导致数组使用效率降低,所以引入循环队列这种结构。假溢出:在顺序队中,当尾指针已经到了数组的上界,不能再有入队操作,但其实数组中还有空位置。因为尾指针总会原创 2020-12-19 20:05:22 · 113 阅读 · 1 评论 -
LinkedList源码分析
LinkedList源码分析继承和实现public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable继承AbstractSequentialList,而AbstractSequentialList继承AbstractList,AbstractSequent原创 2020-12-19 19:50:35 · 69 阅读 · 1 评论