8.2 Collection和Iterator接口
Collection
接口是List
、Set
和Queue
接口的父接口,该接口里定义的方法既可用于操作Set
集合也可用于操作List
和Queue
集合。 Collection
接口里定义了如下操作集合元素的方法
添加元素到集合的方法
方法 | 描述 |
---|---|
boolean add(Object o) |
该方法用于向集合里添加一个元素。如果集合对象被添加操作改变了,则返回true |
boolean addAll(Collection c) |
该方法把集合c里的所有元素添加到指定集合里。如果集合对象被添加操作改变了,则返回true 。 |
从集合中删除元素的方法
方法 | 描述 | ||
---|---|---|---|
boolean remove(Object o) |
删除集合中的指定元素o,当集合中包含了一个或多个元素o时,该方法只删除第一个符合条件的元素,并返回true |
||
boolean removeAll(Collection c) |
从集合中删除集合c里包含的所有元素(相当于用调用该方法的集合减集合c),如果删除了一个或一个以上的元素,则该方法返回true |
||
boolean retainAll(Collection c) |
从集合中删除集合c里不包含的元素(相当于把调用该方法的集合变成该集合和集合c的交集),如果该操作改变了调用该方法的集合,则该方法返回true |
||
void clear() |
清除集合里的所有元素,将集合长度变为0。 | ||
## 查找元素的方法 ## | |||
方法 | 描述 | ||
:— | :— | ||
boolean contains(Object o) |
返回集合里是否包含指定元素。 | ||
boolean containsAll( Collection c) |
返回集合里是否包含集合c里的所有元素。 | ||
## 集合长度相关方法 ## | |||
方法 | 描述 | ||
:— | :— | ||
boolean isEmpty() |
返回集合是否为空。当集合长度为0时返回true ,否则返回false 。 |
||
int size() |
该方法返回集合里元素的个数。 | ||
## 取出迭代器或转为数组 ## | |||
方法 | 描述 | ||
:— | :— | ||
Iterator iterator() |
返回一个Iterator 对象,用于遍历集合里的元素。 |
||
Object[] toArray() |
该方法把集合转换成一个数组,所有的集合元素变成对应的数组元素。 | ||
## 程序示例 ## | |||
下面程序示范了如何通过上面方法来操作Collection 集合里的元素。 |
|||
复制 |
上面程序中创建了两个Collection
对象,一个是c集合,一个是books
集合,其中c集合是ArrayList
,而books
集合是HashSet()
虽然它们使用的实现类不同,但当把它们当成Collection
来使用时,使用add
,remove
,clear
等方法来操作集合元素时没有任何区别。
编译和运行上面程序,看到如下运行结果:
1 | c集合的元素个数为:2 |
复制
总结
Collection
的用法有:添加元素
、删除元素
、返回Collection
集合的元素个数以及清空整个集合
等。
当使用System.out
的println()
方法来输出集合对象时,将输出[e1,e2,...]
的形式,这显然是因为所有的Collection
实现类都重写了toString()
方法,该方法可以一次性地输出集合中的所有元素。
如果想依次访问集合里的每一个元素,则需要使用某种方式来遍历集合元素,下面介绍遍历集合元素的两种方法