
Java集合框架
文章平均质量分 87
z1340954953
男儿当自强
展开
-
HashMap源码解读
转载五月的仓颉:http://www.cnblogs.com/xrq730/p/5030920.html之前的list,介绍了ArrayList和LinkedList,就两者而言,反应的是两种思想1> ArrayList底层是以数组构成的,查询和在不扩容的情况下,顺序添加元素很快,插入和删除较慢2> LinkedList底层是双向链表实现的,查询需要从header节点向前或向后遍历,插...转载 2018-03-23 15:23:59 · 222 阅读 · 0 评论 -
初识LinkedList底层原理
转自 五月的仓颉: http://www.cnblogs.com/xrq730/p/5005347.htmlLinkedList是通过链表实现的,链表是一种线性的存储结构,每个存储的数据都放在一个存储单元里面,每个存储单元除了存放有待存储的数据外,还存储下一个存储单元的地址(下一个存储单元的地址是必要的,有些存储结构还存放前一个存储单元的地址),每次查找数据的时候,通过当前存储单元中存储的下一个单...转载 2018-03-22 15:14:08 · 329 阅读 · 0 评论 -
jdk1.6ArrayList底层实现
转载自五月的仓颉博客地址:http://www.cnblogs.com/xrq730/p/4989451.html对于集合需要关注四点1. 是否允许为空2. 是否允许重复3. 是否有序(取出元素的顺序是否和插入的顺序一致)4. 是否是线程安全的ArrayListArraylist就是一个以数组实现的集合,它的成员变量构成: /** * The array...转载 2018-03-20 10:30:28 · 434 阅读 · 0 评论 -
LinkedHashMap源码解读
LinkedHashMap是HashMap的子类,唯一的区别在于LinkedHashMap对顺序的维护,是有序的构造函数public LinkedHashMap(int initialCapacity, float loadFactor) { super(initialCapacity, loadFactor); accessOrder = false;}public LinkedHash...原创 2018-07-11 10:11:55 · 407 阅读 · 0 评论 -
ConcurrentHashMap源码解读
数据结构源码中的声明public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> implements ConcurrentMap<K, V>, Serializable { //底层就是一个Segment数组 final Segment<K,V>[] segme...转载 2018-07-12 09:34:51 · 287 阅读 · 0 评论 -
HashMap多线程环境下的死循环问题解释
hashMap在多线程环境下,调用put方法出现的死循环是由于扩容时候resize方法导致的链表出现循环。 void resize(int newCapacity) { Entry[] oldTable = table; int oldCapacity = oldTable.length; if (oldCapacity == MAXIMUM_...转载 2018-10-31 10:58:30 · 1068 阅读 · 0 评论