《深入理解Java集合框架》系列文章
摘要:Introduction 关于 C++标准模板库(Standard Template Library, STL) 的书籍和资料有很多,关于 Java集合框架(Java Collections Framework, JCF) 的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小
阅读全文
posted @
2016-05-31 15:23
CarpenterLee
阅读(24762)
推荐(17) 编辑
浅谈WeakHashMap
摘要:Java WeakHashMap 到底Weak在哪里,它真的很弱吗? WeakHashMap 的适用场景是什么,使用时需要注意些什么?弱引用和强引用对Java GC有什么不同影响?本文将给出清晰而简洁的介绍。 总体介绍 在Java集合框架系列文章的最后,笔者打算介绍一个特殊的成员: WeakHash
阅读全文
posted @
2016-05-31 06:57
CarpenterLee
阅读(3401)
推荐(2) 编辑
Java集合框架源码剖析:LinkedHashSet 和 LinkedHashMap
摘要:Java LinkedHashMap 和 HashMap 有什么区别和联系?为什么 LinkedHashMap 会有着更快的迭代速度? LinkedHashSet 跟 LinkedHashMap 有着怎样的内在联系?本文从数据结构和算法层面,结合生动图解为读者一一解答。 "本文github地址" 总
阅读全文
posted @
2016-05-30 08:36
CarpenterLee
阅读(9771)
推荐(11) 编辑
史上最清晰的红黑树讲解(下)
摘要:"本文github地址" 上一篇文章 "史上最清晰的红黑树讲解(上)" 对Java TreeMap 的插入以及插入之后的调整过程给出了详述。 本文接着以Java TreeMap 为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程 。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以
阅读全文
posted @
2016-05-25 07:36
CarpenterLee
阅读(24742)
推荐(14) 编辑
史上最清晰的红黑树讲解(上)
摘要:"本文github地址" 本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red Black tree)的插入,删除以及由此产生的调整过程。 总体介绍 Java TreeMap 实现了 SortedMap 接口,也就是说会按照 的大小顺序对 Map 中的元素进
阅读全文
posted @
2016-05-18 07:49
CarpenterLee
阅读(161132)
推荐(53) 编辑
深入理解Java PriorityQueue
摘要:PriorityQueue "本文github地址" Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度,将让读者建立对PriorityQueue建立清
阅读全文
posted @
2016-05-13 07:27
CarpenterLee
阅读(78679)
推荐(37) 编辑
Java ArrayDeque源码剖析
摘要:ArrayDeque "本文github地址" 前言 Java里有一个叫做 Stack 的类,却没有叫做 Queue 的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用 Stack ,而是推荐使用更高效的 ArrayDeque ;既然 Queue 只是一个接口,当需要使用队列时也就首选 A
阅读全文
posted @
2016-05-07 17:34
CarpenterLee
阅读(13808)
推荐(7) 编辑
Java LinkedList源码剖析
摘要:LinkedList "本文github地址" 总体介绍 LinkedList 同时实现了 List 接口和 Deque 接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列( Queue ),同时又可以看作一个栈( Stack )。这样看来, LinkedList 简直就是个全能冠军。当你需
阅读全文
posted @
2016-05-04 08:19
CarpenterLee
阅读(7978)
推荐(12) 编辑
Java HashSet和HashMap源码剖析
摘要:本文从算法和数据结构层面对Java HashSet和HashMap的实现做了剖析,并结合JDK源码进行逐行讲解,让你对HashSet和HashMap建立清晰而深入的认识。
之所以把HashSet和HashMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此本文将重点分析HashMap。
阅读全文
posted @
2016-04-27 21:17
CarpenterLee
阅读(9374)
推荐(6) 编辑
Java ArrayList源码剖析
摘要:ArrayList "本文github地址" 总体介绍 ArrayList 实现了 List 接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入 元素,底层通过 数组实现 。除该类未实现同步外,其余跟 Vector 大致相同。每个 ArrayList 都有一个容量(capacity),表
阅读全文
posted @
2016-04-22 08:34
CarpenterLee
阅读(12575)
推荐(5) 编辑
Java Collections Framework概览
摘要:"本文github地址" 概览 容器,就是可以容纳其他Java对象的对象。 Java Collections Framework(JCF) 为Java开发者提供了通用的容器,其始于JDK 1.2,优点是: 降低编程难度 提高程序性能 提高API间的互操作性 降低学习难度 降低设计和实现相关API的难
阅读全文
posted @
2016-04-20 20:44
CarpenterLee
阅读(12918)
推荐(6) 编辑