![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java容器
1.8容器
jh0712
这个作者很懒,什么都没留下…
展开
-
util包源码(三):LinkedList源码笔记
阅读时间:2019.1.17—1.18 下一篇看TreeMap 一、概述 LinkedList是双向链表,线程不安全,查找速度O(log N),任意位置的添加删除快。 二、关键属性 属性还是比较浅显易懂的,比HashMap容易很多 transient int size = 0; transient Node<E> first;//头节点 transient Node<E> ...原创 2019-01-18 11:14:06 · 137 阅读 · 0 评论 -
目录
一、util包里的容器类 util包源码(一):ArrayList源码笔记 util包源码(二):HashMap源码笔记 util包源码(三):LinkedList源码笔记 util包源码(四):TreeMap源码笔记 util包源码(五):Hashtable源码笔记 ...原创 2019-01-24 18:27:33 · 121 阅读 · 0 评论 -
util包源码(五):Hashtable源码笔记
阅读时间:2019.1.23–1.24 一、概述 hashtable hashmap 线程安全 是 否 底层结构 哈希表+单链表 哈希表+单链表+红黑树 父类 Dictionary(已废弃) AbstractMap 是否支持null key 不支持 支持 是否支持null value 不支持 支持 默认初始容量 11 16 扩容倍数 2倍初始容量+1 2倍...原创 2019-01-24 15:07:19 · 104 阅读 · 0 评论 -
util包源码(六):LinkedHashMap源码笔记
阅读时间 : 2019.1.25 一、概述 LinedHashMap与HashMap很类似,但他在构建哈希表时,用双向链表连接各节点,桶内超过8个节点,也会转化为二叉树。 LinedHashMap在空间和时间上占用更大资源,但其优越性在于有序性。但LinedHashMap的有序性与treemap不同。 LinedHashMap有序,是指LinedHashMap可以实现两种有序性:1.按插入的顺序...原创 2019-01-25 16:58:16 · 141 阅读 · 0 评论 -
util包源码(七):WeakHashMap源码笔记
阅读时间:2019.1.28 一、概述 WeakHashMap 继承于AbstractMap,实现了Map接口。和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 与HashMap不同的是,WeakHashMap 桶内一直是单链表存储,不进行红黑树转化。 最后,WeakHashMap 最关键的特性:key是弱...原创 2019-01-28 15:00:24 · 112 阅读 · 0 评论 -
util包源码(四):TreeMap源码笔记
阅读时间:2019.1.18– 一、概述 TreeMap底层为红黑树实现,最大的特点是可排序或者说天生有序。 关于排序:排序的方式可以按大小,也可以自定义实现Comparator ,且对于自定义的类(如User类),那么必须自己定义比较机制: 1 、方式一:User类去实现java.lang.Comparable接口,并实现其compareTo()方法。 2、方式二:写一个类(如MyCompat...原创 2019-01-23 16:42:47 · 159 阅读 · 0 评论 -
util包源码(八):HashSet和TreeSet源码笔记
阅读时间:2019.1.28 一、概述 HashSet TreeMap value是否可null 可以 可以 value是否唯一 是 是 底层实现 HashMap+set TreeMap+set 是否线程安全 否 否 是否有序 无序 有序 二、HashSet HashSet的底层实现,是依靠hashMap的,值的唯一性是依靠HashMap的key的唯一性。 1...原创 2019-01-28 15:50:27 · 119 阅读 · 0 评论 -
util包源码(二):HashMap源码笔记
阅读时间:2019.1.11–1.17 java版本:1.8 一、概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。 在JDK1.8中,HashMap采用数组+链表+红黑树实现,当链表长度超过阈值8时,将链表转换为红黑树,这样大大减少了...原创 2019-01-17 14:31:48 · 153 阅读 · 0 评论 -
util包源码(一):ArrayList源码笔记
一.初始化 代码片. ArrayList初始化有三种方式,无参,有int参,或者一个容器类型的参数 //默认构造函数,会创建一个空的数组Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {} public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEME...原创 2019-01-15 16:54:37 · 122 阅读 · 0 评论 -
util包源码(九):阶段性总结
一、总体框架 二、Collection Colletcion接口下有两大实现:List和Set List Set 是否有序 LinkedList有序,其他无序 HashSet无序,TreeSet有序 元素是否可重复 是 否 具体实现 ArrayList、LinkedList、Vector HashSet、TreeSet 是否线程安全 Vector安全,其他不安全 都...原创 2019-01-28 17:11:54 · 156 阅读 · 0 评论