摘要: ConcurrentHashMap和Hashtable都是线程安全的K-V型容器。本篇从源码入手,简要说明它们两者的实现原理和区别。 与HashMap类似,ConcurrentHashMap底层也是以数组+链表+红黑树实现的,以Node节点封装K-V和hash。 val和next以volatile关 阅读全文
posted @ 2019-01-21 21:23 阳光、大地和诗歌 阅读(327) 评论(0) 推荐(0) 编辑
摘要: HashSet为无序不可重复集合。底层几乎全部借助HashMap实现,比较简单。本篇简要分析一下HashSet源码。 首先是成员变量: 1、真正保存数据的HashMap实例 2、map实例的值 常用方法: 1、add() 从这个HashSet的add()方法中,可以看出。HashSet的不可重复,主 阅读全文
posted @ 2019-01-21 18:50 阳光、大地和诗歌 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 在JDK1.8中对HashMap的底层实现做了修改。本篇对HashMap源码从核心成员变量到常用方法进行分析。 HashMap数据结构如下: 先看成员变量: 1、底层存放数据的是Node<K,V>[]数组,数组初始化大小为16。 2、Node<K,V>[]数组最大容量 3、负载因子0.75。也就是如 阅读全文
posted @ 2019-01-21 18:28 阳光、大地和诗歌 阅读(292) 评论(0) 推荐(0) 编辑