javase
qq_27434143
这个作者很懒,什么都没留下…
展开
-
HashMap、Hashtable、TreeMap、HashSet
HashMap:底层数组+链表实现,可以存储null键和null值,线程不安全 初始size为16,扩容:newsize = oldsize*2,size一定为2的n次幂 扩容针对整个Map,每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入 插入元素后才判断该不该扩容,有可能无效扩容(插入后如果扩容,如果没有再次插入,就会产生无效扩容) 当Map中元素总数超过Entry数组的75%,触发扩容操作,为了减少链表长度,元素分配更均匀 计算index方法:index = hash &am原创 2020-09-27 10:22:01 · 99 阅读 · 0 评论 -
Java迭代器(iterator详解以及和for循环的区别)
链接:https://blog.csdn.net/Jae_Wang/article/details/80526216集合类中有一个记录元素个数的count,当count数改变时就会报错,因为Iterator遍历的时候不让增减元素链接:https://www.iteye.com/blog/guhanjie-1471031...原创 2020-09-25 17:37:55 · 210 阅读 · 0 评论 -
jdk1.8以前HashMap多线程导致的死循环问题
1.自认为是读取数据时刚好遇到hashmap重排序,头插法导致链表循环。链接:https://coolshell.cn/articles/9606.html原创 2021-06-16 15:18:32 · 113 阅读 · 0 评论 -
为什么说ArrayList是线程不安全
转载:https://blog.csdn.net/u012859681/article/details/78206494最主要原因:存在一个计算数组大小的size,存在两种线程安全导致的问题1.添加数据时,数组越界。2.先加入的数据被后加入的数据覆盖,并且存在null插入的情况...原创 2020-09-24 17:49:33 · 142 阅读 · 0 评论 -
HashMap原理
HashMap的横向扩容是当元素个数超过数组长度的3/4时就会扩容,纵向扩容是当链表长度超过8个元素时链接:https://blog.csdn.net/qq_41345773/article/details/92066554原创 2020-09-23 12:03:22 · 50 阅读 · 0 评论