数组,尺寸固定,只能保存基础数据类型,而容器解决了这些问题。
Java容器分为两类:Collection ,map;
基于数组(Array)实现的容器:存储空间联系,查找性能高;
基于链表(Linked)实现的容器:存储空间离散,插入和删除性能高。
Queue队列,访问受限的容器,只能访问队头和队尾;
Set:集合元素无重复;
ArrayDeque: 数组双端队列
PriorityQueue: 优先级队列
DelayQueue:延期阻塞队列(阻塞队列实现了BlockingQueue接口)
ArrayBlockingQueue, 基于数组的并发阻塞队列,队首与队尾共享一个锁
LinkedBlockingQueue, 基于链表的FIFO阻塞队列,队首与队尾分别有一个独立锁
LinkedBlockingDeque, 基于链表的FIFO双端阻塞队列
BlockingQueue: 阻塞队列;Concurrent:并发
ConcurrentLinkedQueue: 基于链表的并发队列
ConcurrentSkipListSet:基于”跳表”实现的并发集合容器;
CopyOnWriteArrayList: 读并发的List实现,适合用在“读多,写少”的“并发”应用中;
CopyOnWriteArraySet:读并发的Set实现,适合用在“读多,写少”的“并发”应用中;
SynchronousQueue: 没有数据缓冲的BlockingQueue(存一个之后马上要取一个)
各个Collection接口下一些主要容器:
Map接口下的一些主要容器:
java.util.Collections类提供了一些可以在多线程操作下,线程安全的容器包装方法。
synchronizedCollection 返回指定 collection 支持的同步(线程安全的)collection。
synchronizedList(List<T> list) 返回指定列表支持的同步(线程安全的)列表。
synchronizedMap(Map<K,V> m) 返回由指定映射支持的同步(线程安全的)映射。
synchronizedSet(Set<T> s) 返回指定 set 支持的同步(线程安全的)set。
synchronizedSortedMap(SortedMap<K,V> m) 返回指定有序映射支持的同步(线程安全的)有序映射。
synchronizedSortedSet(SortedSet<T> s) 返回指定有序 set 支持的同步(线程安全的)有序 set。
参考资料:
http://www.ibm.com/developerworks/cn/java/j-jtp04186/
http://blog.csdn.net/guangcigeyun/article/details/8278349
http://blog.csdn.net/guangcigeyun/article/details/8278349
http://ifeve.com/java-synchronousqueue/
http://zy19982004.iteye.com/category/243417