Java 合集框架支持以下两种类型的容器:
- 一种是为了存储一个元素合集,简称为合集(collection) 。
- 另一种是为了存储键/值对,称为映射表( map ) 。
之后再学习Map,现在我们将注意力集中在以下合集上。
• Set 用于存储一组不重复的元素。
• List 用于存储一个有序元素合集。
• Stack 用于存储采用后进先出方式处理的对象。
• Queue 用于存储采用先进先出方式处理的对象。
• Priority Queue 用于存储按照优先级顺序处理的对象.
1、Collection 合集
数据结构( data structure) 是以某种形式将数据组织在一起的 Collection(合集)
。数据结构不仅存储数据,还支持访问和处理数据的操作。在Java里,一种数据结构被认为是一种 容器
,即一种能存储其他对象的对象。
Collection是集合框架的根接口.不同的集合具有不同的特性,比如有的集合可以有重复元素,有的不可以,有的可以排序,有的不可排序,如此等等,而Collection作为集合的根接口,它规范定义了集合的通用方法,一个集合我们可以看作一个在内存中的小型数据库,而数据库的常用操作无外乎"增删改查",Collection中的方法也大体是这些类型操作.
此外Colletion的所有通用实现类都会有一个转换器构造方法,它接收一个Collection类型参数,这样可以以另一个Collection类型集合中元素来初始化自己,也相当于实现了集合类型的相互转换.
Collection 接口为线性表、向量、枝、队列,优先队列以及集合定义了共同的操作。即
Collection
是 Set
、 List
、 Queue
和 Deque
的接口。( Deque 继承 Queue,间接得继承了 Collection )
Queue: 先进先出队列
Deque: 双向链表
2、Collection 中的方法
Collection是一个接口,提供了很多方法供子类调用。
add、addAll、 clear、 contains 、contiansAll、 equals 、hashCode 、
isEmpty 、remove 、removeAll 、retainAll 、size 、toArray
Collection 接口中的有些方法是不能在具体子类中实现的。在这种情况下,这些方法会抛出异常java.lang.UnsupportedOperationException
,它是RuntimeException异常类的一个子类。这样设计很好,可以在自己的项目中使用。如果一个方法在子类中没有意义,可以接如下方式实现,它:
public void someMethod() {
throw new UnsupportedOperationException