陈树义的博客

分享我的所思所想

如何做到长远思考?

我们都知道做事情要长远考虑,而不是只注重眼前的利益。虽然我们都知道这一道理,但是许多人还是没办法做到这一点。我明白这个道理的时候很早,但同样是「许多大道理都懂,但就是做不到」。一直到大概一年前,我告诉自己要慢慢培养自己的长远思考意识。考虑事情的时候要站在1年、3年、5年、甚至10年的角度去思考,去做

集合系列(十六):总结


集合系列 Map(十五):TreeMap

TreeMap 是 Map 集合的有序实现,其底层是基于红黑树的实现,能够早 log(n) 时间内完成 get、put 和 remove 操作。public class TreeMap<K,V> extends AbstractMap<K,V> implement

集合系列 Map(十四):WeakedHashMap

WeakedHashMap 也是 Map 集合的哈希实现,但其余 HashMap 的不同之处在于。其每个节点的 value 引用是弱引用,可以方便 GC 回收。public class WeakHashMap<K,V> extends AbstractMap<K,V>

集合系列 Map(十三):LinkedHashMap

我们之前说过 LinkedHashMap 是在 HashMap 的基础上,增加了对插入元素的链表维护。那么其到底是怎么实现的呢?今天这篇文章就带我们来一探究竟。public class LinkedHashMap<K,V> extends HashMap<K,V>

集合系列 Map(十二):HashMap

HashMap 是 Map 基于哈希散列算法的实现,其在 JDK1.7 中采用了数组+链表的数据结构。在 JDK1.8 中为了提高查询效率,采用了数组+链表+红黑树的数据结构。本文所有讲解均基于 JDK1.8 进行讲解。public class HashMap<K,V> extends

集合系列 Queue(十一):ArrayDeque

从名字我们可以看出,其实一个双向队列实现,而且底层采用数组实现。public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E&g

集合系列 Queue(十):LinkedList

我们之前在说到 List 集合的时候已经说过 LinkedList 了。但 LinkedList 不仅仅是一个 List 集合实现,其还是一个双向队列实现。public class LinkedList<E> extends AbstractSequentialList<E&

集合系列 Queue(九):PriorityQueue

PriorityQueue 是一个优先级队列,其底层原理采用二叉堆实现。我们先来看看它的类声明:public class PriorityQueue<E> extends AbstractQueue<E> implements java.io.SerializableP

集合系列 Set(八):TreeSet

TreeSet 是 Set 集合的红黑树实现,但其内部并没有具体的逻辑,而是直接使用 TreeMap 对象实现。我们先来看看 TreeSet 的定义。public class TreeSet<E> extends AbstractSet<E> implements Na