Ch04-Java Map 之 WeakHashMap
March 3, 2017
WeakHashMap 的特殊之处在于 WeakHashMap 里的 entry 可能会被 GC 自动删除,即使程序员没有调用 remove() 或者 clear() 方法。
...WeakHashMap 的特殊之处在于 WeakHashMap 里的 entry 可能会被 GC 自动删除,即使程序员没有调用 remove() 或者 clear() 方法。
...TreeMap 实现了 SortedMap 接口,也就是说会按照 key 的大小顺序对 Map 中的元素进行排序,key 大小的评判可以通过其本身的自然顺序 (natural ordering),也可以通过构造时传入的比较器 (Comparator)。
...LinkedHashMap 是 HashMap 的直接子类,二者唯一的区别是 LinkedHashMap 在 HashMap 的基础上,采用双向链表 (doubly-linked list) 的形式将所有 entry 连接起来,这样是为保证元素的迭代顺序跟插入顺序相同。
...优先队列的作用是能保证每次取出的元素都是队列中权值最小的,这里牵涉到了大小关系,元素大小的评判可以通过元素本身的自然顺序,也可以通过构造时传入的比较器 Comparator。
...Java 里有一个叫做 Stack 的类,却没有叫做 Queue 的类 (它是个接口名字)。当需要使用栈时,Java 已不推荐使用 Stack,而是推荐使用更高效的 ArrayDeque;既然 Queue 只是一个接口,当需要使用队列时也就首选 ArrayDeque 了 (次选是 LinkedList)。
...LinkedList 同时实现了 List 接口和 Deque 接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列 (Queue),同时又可以看作一个栈 (Stack)。所以当需要使用栈或者队列时,可以考虑使用 LinkedList。
...ArrayList 实现了 List 接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入 null 元素,底层通过数组实现。除该类未实现同步外,其余跟 Vector 大致相同。
...synchronized 是 Java 中的一个关键字,主要用于解决 Java 中常见的并发问题(原子性,可见性,有序性)。
...