![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
fei2324
air
展开
-
Map java集合知识三
一.Map接口的三个常用实现类 jdk1.8 类名 底层数据结构 线程是否安全 效率 增量值 HashMap 链表加数组 线程不安全 效率都很快。 默认初始容量为0,第一次put后容量是16,每次扩容2倍。扩容因子是0.75 HashTable 动态的数组结构 线程不安全 无论增删还是查询都非常慢 默认初始容量...原创 2019-08-23 16:30:35 · 111 阅读 · 0 评论 -
Collection之List java集合知识一
一.List接口的三个常用实现类 jdk1.8 类名 底层数据结构 线程是否安全 效率 增量值 ArrayList 动态的数组结构 线程不安全 增删的效率很慢(因为要移动数据),但是随机查询的效率很高。 默认初始容量为0,第一次add后容量是10,每次扩容1.5倍。(grow方法为扩容方法,利用数字位移) ,扩容因子1 Vector ...原创 2019-08-23 14:55:31 · 143 阅读 · 0 评论 -
Collection之Set java集合知识二
一.Set接口的三个常用实现类 jdk1.8 类名 底层数据结构 线程是否安全 效率及特点 增量值 HashSet 低层是HashMap的key 线程不安全 存取速度快。唯一并无序,只能唯一null 默认初始容量为16,加载因子是0.75,扩容2倍 TreeSet 红黑数,低层是TreeMap 线程不安全 需要有一个比较 ...原创 2019-08-23 15:41:30 · 88 阅读 · 0 评论 -
HashMap原理解析 jdk1.7
https://www.cnblogs.com/baiqiantao/p/5635931.html原创 2019-08-26 16:08:02 · 101 阅读 · 0 评论 -
ConcurrentHashMap
putVal(K key, V value, boolean onlyIfAbsent)方法干的工作如下: 1、检查key/value是否为空,如果为空,则抛异常,否则进行2 2、进入for死循环,进行3 3、检查table是否初始化了,如果没有,则调用initTable()进行初始化然后进行 2,否则进行4 4、根据key的hash值计算出其应该在table中储存的位置i,取出table[i]的...原创 2019-08-29 14:40:39 · 74 阅读 · 0 评论