Java集合源码详解
对Java语言中的java.util包下的常用集合类进行详细的分析,从源码角度深入分析集合类的实现原理以及常见问题。
DivineH
这个作者很懒,什么都没留下…
展开
-
Java集合之WeakHashMap详解
WeakHashMap是一种特殊的HashMap,那它特殊在哪里呢?WeakHashMap的键是弱引用对象,弱引用是实现WeakHashMap的关键所在,WeakHashMap特别适用于需要缓存的场景,当一个键对象被垃圾回收器回收时,那么相应的值对象的引用会从Map中删除。WeakHashMap能够节约存储空间,可用来缓存那些非必须存在的数据。由于WeakHashMap的键值是弱引用对象,所以,即...原创 2018-05-26 17:04:23 · 784 阅读 · 0 评论 -
Java集合之LinkedHashMap详解
简介LinkedHashMap继承自HashMap,与HashMap有着类似的存储结构,LinkedHashMap类声明如下:public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>它继承于HashMap,实现了Map接口。LinkedHashMap是非线程安全的,只是用于单...原创 2018-06-15 17:00:24 · 1181 阅读 · 0 评论 -
Java集合之TreeMap详解
简介TreeMap是一个有序的key-value集合,它是通过红黑树实现的。它的每一个元素是一个key-value对,TreeMap类声明如下:public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.Serializab...原创 2018-06-15 13:38:50 · 1677 阅读 · 1 评论 -
Java集合之HashTable详解
简介Hashtable和HashM类似,同样是基于哈希表实现的,同样每个元素是一个key-value对,但其内部只是通过单链表解决哈希冲突问题,而没有红黑树结构,当HashTable容量不足(超过了阀值)时,同样会进行扩容操作。Hashtable类声明如下:public class Hashtable<K,V> extends Dictionary<K,V> impleme...原创 2018-06-15 09:58:49 · 2255 阅读 · 0 评论 -
Java集合之HashMap详解
简介HashMap是基于哈希表实现的,每一个元素是一个key-value对,HashMap类声明如下:public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable它继承于AbstractMap,实现了Map、Cloneable、 Se...原创 2018-06-14 15:15:43 · 2682 阅读 · 2 评论 -
Java集合之Vector详解
简介Vector的内部实现类似于ArrayList,Vector也是基于一个容量能够动态增长的数组来实现的,该类是JDK1.0版本添加的类,它的很多实现方法都加入了同步语句,因此是线程安全的(但Vector其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全,我们后面会有例子来说明这一点)。Vector类声明如下:public class Vector<E> extends ...原创 2018-06-12 15:54:11 · 13826 阅读 · 1 评论 -
Java集合之LinkedList详解
简介LinkedList是基于双向链表实现的,LinkedList同样是非线程安全的,只在单线程下适合使用。LinkedList类声明如下:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java...原创 2018-06-12 14:44:17 · 460 阅读 · 0 评论 -
Java集合之ArrayList详解
简介ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List、RandomAccess、Cloneable、 Serializable等接口。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的...原创 2018-06-11 21:21:24 · 1983 阅读 · 1 评论 -
Java集合简介
简介Java集合工具包位于java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Map映射、Set集合、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。Java集合类的整体框架如下:此图来源于http://blog.csdn.net/...原创 2018-06-11 18:59:18 · 312 阅读 · 0 评论