本节主要介绍Java.util包中的一些集合类以及接口的实用
5.2.1 集合的概念
集合是存放一组数据的容器,能够实现对数据的存储、检索和操纵。集合的最大特性就是长度不固定,相对长度固定的数组来说集合的应用比较广泛。集合的另一个特点就是集合中必须存放对象。
Java2中的集合框架提供了一套设计优良的接口和类,这些接口和类有很多对抽象数据类型操作的API。Java2的精简集合框架如下图:
其中用实线表示的是具体实现类,Java2的集合框架中,其核心主要有三类:Set、List和Map。
Set接口继承Collection,但不允许重复,使用自己内部的一个排列机制。List接口继承Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。Map接口是一组成对的键值对象,即所持有的是key-value pairs。 Map中不能有重复的key,拥有自己的内部排列机制。
5.2.2 核心接口
1.Collection<E>接口
Collection是集合类的基本接口,它用来说明作为一个集合类应该持有的结构特征属性和带有共性的操作方法,它的子接口有List、Set。Collection提供了如下方法:
(1)单元素添加、删除操作
- boolean add(E e);将对象添加给集合;
- boolean remove(Object o):如果集合中有与o匹配的对象,则删除对象o;
(2)查询操作
- int size()返回当前集合中元素的个数;
- boolean isEmpty()判断集合元素是否为空;
- boolean contains(Object o)查找集合中是否含有指定的对象;
- Iterator<E> iterator返回一个迭代器,用来访问集合中的各个元素;
2.:List<E>接口
List是一种能包含重复元素的有序集合,除了从Collection中继承的接口方法,List还提供了一些其他的方法,用于通过索引操作元素。
3.Set<E>接口
Set接口继承Collection接口,在Set中的对象元素不能重复,每个具体的Set实现类依赖添加的对象的equals()方法来检查独一性,所以要加入Set,对象必须定义equals()方法。
4.Map<K,V>接口
Map接口没有继承Collection接口,所以它们有不同的特性。