容器和数组一样用来存放一组对象,和数组不同的是容器可以动态的增删元素,所以它比数组更灵活,Java容器可以分为两大类:
- Collection
- Map
本文将介绍常用的Collection和Map容器及它们之间的关系,先在整体上了解Collection和Map容器,然后在后面的文章详细介绍每一种容器。
Collection
Collection表示一个独立的对象序列,它存储的对象间是相互独立没有关联的,如数组也是存储了
一个独立的对象序列 。Collection被定义成接口,它定义了一些公共的方法来操作Collection容器。常用的Collection容器有:
- 链表(List):ArrayList、LinkedList
- 集合(Set):HashSet、LinkedHashSet、TreeSet
- Queue(队列):PriorityQueue
查看Collection的定义会发现它继承自Iterable接口:
public interface Collection<E> extends Iterable<E> {
......
}
public interface Iterable<T> {
Iterator<T> iterator();
......
}
Iterable唯一有用的方法是iterator(),他返回一个Iterator对象, Iterator也叫作迭代器,使用迭代器可以遍历访问容器里面的每一个元素,迭代器提供了一种统一的方式来访问Collection类容器。关于迭代器的使用将放到后面的文章里面做介绍。Collection容器的类图如下:
Map
Map表示一组“键值对”对象,键值对是相互关联的,可以使用键来查找值。同样的Map也是接口,
它定义了一些公共的方法来操作Map类容器。常用的Map容器有:
- HashMap
- TreeMap
- LinkedHashMap
Map容器的类图关系如下:
