摘要: 你一定听说过HashSet就是通过HashMap实现的 相信我,翻一翻HashSet的源码,秒懂!! 其实很多东西,只是没有静下心来看,只要去看,说不定一下子就明白了…… HashSet 两个属性: 所有HashSet的操作都是通过对其属性map操作实现的,map的key是HashSet,map的v 阅读全文
posted @ 2018-09-30 17:23 那股泥石流 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 找了几个分析比较到位的,不再重复写了…… Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例 【Java集合源码剖析】TreeMap源码剖析 java源码分析之TreeMap基础篇 关于红黑树: Java数据结构和算法(十一)——红黑树 【数据结构与算法】二叉排序树C实现(含完整 阅读全文
posted @ 2018-09-30 15:40 那股泥石流 阅读(389) 评论(0) 推荐(0) 编辑
摘要: HashMap与Hashtable数据结构几乎是相同的(数组+链表),核心方法的实现也大致相同 主要讨论不同,比较两者不同从JDK源码入手 一、父类不同 HashMap父类AbstractMap Hashtable父类Dictionary Dictionary类源码已注释被弃用 Hashtable类 阅读全文
posted @ 2018-09-29 18:09 那股泥石流 阅读(385) 评论(0) 推荐(0) 编辑
摘要: HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序。 LinkedHashMap保证了元素迭代的顺序。该迭代顺序可以是插入顺序或者是访问顺序。通过维护一个双向链表实现。 需要在理解HashMap实现原理的基础上学习LinkedHashMap,JDK源码学 阅读全文
posted @ 2018-09-29 15:12 那股泥石流 阅读(242) 评论(0) 推荐(0) 编辑
摘要: Java集合的学习先理清数据结构: 一、属性 二、构造函数 三、主要方法 get put remove resize 遍历 四、数组的长度是2的次幂? 数组下表计算e.hash & (table.length- 1)? hash()方法(h = key.hashCode()) ^ (h >>> 16 阅读全文
posted @ 2018-09-28 15:13 那股泥石流 阅读(368) 评论(0) 推荐(0) 编辑
摘要: ArrayList与LinkedList ArrayList 通过数组实现,LinkedList 通过双向链表实现 get/set:ArrayList直接通过下标在数组中取,LinkedList需要从头/尾遍历到index add/remove:ArrayList需要将index之后的元素都复制一遍 阅读全文
posted @ 2018-09-25 15:18 那股泥石流 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 一、类定义 二、属性 数据结构模型: 三、构造方法 四、主要方法/内部类 逻辑较简单,详细可参考: Java集合 LinkedList源码解析 Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例 面试必备:LinkedList源码解析(JDK8) 阅读全文
posted @ 2018-09-21 17:17 那股泥石流 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 一、类定义 二、属性 三、构造方法 四、主要方法 五、内部类 关于并行迭代器Spliterator:jdk8中Spliterator的作用 六、其他 1.Fail-Fast机制:java中的fail-fast(快速失败)机制 2.ArrayList与Vector区别:实现原理一样主要区别 ①线程安全 阅读全文
posted @ 2018-09-20 14:46 那股泥石流 阅读(192) 评论(0) 推荐(0) 编辑
摘要: Collection接口继承java.lang.Iterable接口,集合类重写了iterator()方法 原理: 一开始迭代器在所有元素的左边,调用next()之后,迭代器移到第一个和第二个元素之间,next()方法返回迭代器刚刚经过的元素。hasNext()若返回True,则表明接下来还有元素, 阅读全文
posted @ 2018-09-18 18:29 那股泥石流 阅读(572) 评论(0) 推荐(1) 编辑
摘要: 一、类定义 二、属性 private final int value; 三、构造方法 四、主要方法 Integer.valueof() String >Integer Integer >String 五、其他方法 参考资料: 1、Java 源码学习系列(三)——Integer 2、Java源码 In 阅读全文
posted @ 2018-09-18 15:30 那股泥石流 阅读(284) 评论(0) 推荐(0) 编辑