java集合
文章平均质量分 93
DivineH
这个作者很懒,什么都没留下…
展开
-
Java集合之WeakHashMap详解
WeakHashMap是一种特殊的HashMap,那它特殊在哪里呢?WeakHashMap的键是弱引用对象,弱引用是实现WeakHashMap的关键所在,WeakHashMap特别适用于需要缓存的场景,当一个键对象被垃圾回收器回收时,那么相应的值对象的引用会从Map中删除。WeakHashMap能够节约存储空间,可用来缓存那些非必须存在的数据。由于WeakHashMap的键值是弱引用对象,所以,即...原创 2018-05-26 17:04:23 · 788 阅读 · 0 评论 -
Java并发编程之ConcurrentHashMap详解
简介我们知道,HashMap并不是线程安全的,要使用线程安全的HashMap,可以用HashTable或者通过Collections.synchronizedMap方法来获取一个线程安全的Map,但是这两种线程安全的Map都是使用synchronized来保证线程安全,因此,在多线程竞争激烈的情况下,它们的效率非常低。因为当一个线程访问synchronized同步方法时,其他线程访问Map,可能会...原创 2018-06-25 10:15:28 · 868 阅读 · 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 · 1183 阅读 · 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 · 1679 阅读 · 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 · 2262 阅读 · 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 · 2691 阅读 · 2 评论 -
Java集合之Vector详解
简介Vector的内部实现类似于ArrayList,Vector也是基于一个容量能够动态增长的数组来实现的,该类是JDK1.0版本添加的类,它的很多实现方法都加入了同步语句,因此是线程安全的(但Vector其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全,我们后面会有例子来说明这一点)。Vector类声明如下:public class Vector<E> extends ...原创 2018-06-12 15:54:11 · 13894 阅读 · 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 · 465 阅读 · 0 评论 -
Java集合之ArrayList详解
简介ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List、RandomAccess、Cloneable、 Serializable等接口。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的...原创 2018-06-11 21:21:24 · 2003 阅读 · 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 评论 -
Java并发编程之ConcurrentLinkedQueue详解
简介在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,下面我们一起来研究下Doug Lea是如何使用非阻塞的方式来实现线程安全队列ConcurrentLinked...原创 2018-06-26 10:00:26 · 81075 阅读 · 24 评论