1 前言
Java实用类库中提供一套相当完整的容器类来保存数据对象,其中基本类型有List、Set、Queue和Map
;这些对象类型也称为集合类;
对于每种集合类都有自身一些特性;如:Set对于每个值都只保存一个对象;Map是允许你将某些!对象与其他一些对象关联起来的关联数组,Java容器类都可以自动调整自己的尺寸;
2 基本概念
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:
Collection
:一个独立元素的序列,这些元素都服从一条或多条规则。
List
必须按照插入的顺序保存元素;Set
不能有重复元素;Queue
按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)Map
:一组成对的”键值对”对象,允许你使用键来查找值;
3 集合类类图结构
从JDK源码中,我们可以看到Java中集合类都有继承或者实现了Iterator
接口类,从而得到对于集合类数据对象遍历操作;
同时,Collection
接口概括了序列的概念:一种存放一组对象的方式;
4 集合类具体实现
4.1 Map
从源码我们可以获悉Map集合类具体实现有如下几种:
- HashMap:http://blog.csdn.net/worthliu/article/details/51872287
- TreeMap:
- LinkedHashMap:
- WeakHashMap:
- Hashtable:
- ConcurrentHashMap:
- ConcurrentSkipListMap:
4.2 List
从源码我们可以获悉List集合类具体实现有如下几种:
- ArrayList:http://blog.csdn.net/worthliu/article/details/52674775
- LinkedList:
- Vector:
- CopyOnWriteArrayList:
4.3 Set
从源码我们可以获悉Set集合类具体实现有如下几种:
- HashSet:
- TreeSet:
- LinkedHashSet:
- CopyOnWriteArraySet:
- ConcurrentSkipListSet:
4.4 Queue
从源码我们可以获悉Queue集合类具体实现有如下几种:
- PriorityQueue:
- DelayQueue:
- ConcurrentLinkedQueue:
- SychronousQueue:
- LinkedBlockingQueue:
- LinkedBlockingDeque:
- ArrayBlockingQueue:
- PriorityBlockingQueue:
由于篇幅有限,针对每个具体实现类将在后续博文中进行梳理!