在介绍具体的集合之前,本篇文章对Java中的集合框架做一个大致描述,从一个高的角度俯视这个框架,了解了这个框架的一些理念与约定,会大大帮助后面分析某个具体类,让我们开始吧。
1.集合框架(collections framework)
在计算机领域,集合一般是指对象的集合,框架则是指有明确关系的集合的集合,其实这些新名词都是一个统称,归根结底集合也是一个类,只不过是一个可以储存并且处理多个其他对象的类,而框架就是类之间的整体关系。这是一种存储思想,其实说白了,可以把一个集合看成一个微型数据库,操作不外乎“增删改查”四种操作。
2.两大基类Collection与Map
Collection
或
Map
的集合类,会提供两个“标准”的构造函数:
1.没有参数的构造函数,创建一个空的集合类
2.有一个类型与基类(Collection
或Map
)相同的构造函数,创建一个与给定参数具有相同元素的新集合类
因为接口中不能包含构造函数,所以上面这两个构造函数的约定并不是强制性的,但是在目前的集合框架中,所有继承自Collection
或Map
的子类都遵循这一约定。
3.List Set Map基本集合
1.List Set都是继承Collection的接口,List元素有放入顺序,元素可以重复;Set元素放入无顺序,重复元素被覆盖。
Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。
2.Map单独存在,是一个适合存储键值对的集合。
4. 使用方法
这三大基本集合都是接口,因此使用的时候一般都用他们的实现类,也就是ArrayList LinkedList HashMap HashTable,ConCurrentHashMap,eg:List<String> list = new ArrayList<String>();
其实这些集合的东西归根结底都是基本的三大数据结构,线性表,链表,和散列表,以上常用的类都是基于这些数据结构单独实现或组合。