- 博客(11)
- 收藏
- 关注
转载 浅谈WeakHashMap
在Java集合框架系列文章的最后,笔者打算介绍一个特殊的成员:*WeakHashMap*,从名字可以看出它是某种 *Map*。它的特殊之处在于 *WeakHashMap* 里的`entry`可能会被GC自动删除,即使程序员没有调用`remove()`或者`clear()`方法。
2017-03-05 20:47:15 207
转载 深入理解Java PriorityQueue
Java中*PriorityQueue*通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从*Queue*接口函数出发,结合生动的图解,深入浅出地分析*PriorityQueue*每个操作的具体过程和时间复杂度,将让读者建立对*PriorityQueue*建立清晰而深入的认识。
2017-03-05 20:28:07 195
转载 JAVA LinkedHashSet 和 LinkedHashMap源码剖析
*LinkedHashMap*实现了Map接口,即允许放入`key`为`null`的元素,也允许插入`value`为`null`的元素。从名字上可以看出该容器是*linked list*和*HashMap*的混合体,也就是说它同时满足*HashMap*和*linked list*的某些特性。可将*LinkedHashMap*看作采用*linked list*增强的*HashMap*。
2017-03-05 10:23:39 282
转载 史上最清晰的红黑树讲解(下)
引用自此博客文章,感谢CarpenterLee 史上最清晰的红黑树讲解(下)本文github地址上一篇文章史上最清晰的红黑树讲解(上)对Java TreeMap的插入以及插入之后的调整过程给出了详述。本文接着以Java TreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。寻找节点后继对于一棵二叉查找树,给定节
2017-03-05 10:15:39 224
转载 史上最清晰的红黑树讲解(上)
本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。
2017-03-05 09:57:19 259
转载 Java ArrayDeque源码剖析
Java里有一个叫做*Stack*的类,却没有叫做*Queue*的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用*Stack*,而是推荐使用更高效的*ArrayDeque*;既然*Queue*只是一个接口,当需要使用队列时也就首选*ArrayDeque*了(次选是*LinkedList*)。
2017-03-04 23:05:12 255
转载 Java LinkedList源码剖析
*LinkedList*同时实现了*List*接口和*Deque*接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(*Queue*),同时又可以看作一个栈(*Stack*)。这样看来,*LinkedList*简直就是个全能冠军。当你需要使用栈或者队列时,可以考虑使用*LinkedList*
2017-03-04 22:54:43 200
转载 Java HashSet和HashMap源码剖析
之所以把*HashSet*和*HashMap*放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,**也就是说HashSet里面有一个HashMap(适配器模式)**。因此本文将重点分析*HashMap*。
2017-03-03 22:47:54 187
转载 Java ArrayList源码剖析
ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添加元素时,如果容量不足,容器会自动增大底层数组的大小。前面已经提过,Java泛型只是编译器提供的语法糖,所以这里的数
2017-03-03 22:31:22 172
转载 Java Collections Framework概览
容器,就是可以容纳其他Java对象的对象。Java Collections Framework(JCF)为Java开发者提供了通用的容器,其始于JDK 1.2。 Java容器里只能放对象,对于基本类型(int, long, float, double等),需要将其包装成对象类型后(Integer, Long, Float, Double等)才能放到容器里。很多时候拆包装和解包装能够自动完成。这虽然会导致额外的性能和
2017-03-03 22:14:06 149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人