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 集合里的元素。 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| import java.util.*;
public class CollectionTest { public static void main(String[] args) { Collection c = new ArrayList(); c.add("孙悟空"); c.add(6); System.out.println("c集合的元素个数为:" + c.size()); c.remove(6); System.out.println("c集合的元素个数为:" + c.size()); System.out.println("c集合的是否包含\"孙悟空\"字符串:" + c.contains("孙悟空")); c.add("轻量级Java EE企业应用实战"); System.out.println("c集合的元素:" + c); Collection books = new HashSet(); books.add("轻量级Java EE企业应用实战"); books.add("疯狂Java讲义"); System.out.println("c集合是否完全包含books集合?" + c.containsAll(books)); c.removeAll(books); System.out.println("c集合的元素:" + c); c.clear(); System.out.println("c集合的元素:" + c); books.retainAll(c); System.out.println("books集合的元素:" + books); } }
|
|
|
上面程序中创建了两个Collection
对象,一个是c集合,一个是books
集合,其中c集合是ArrayList
,而books
集合是HashSet()
虽然它们使用的实现类不同,但当把它们当成Collection
来使用时,使用add
,remove
,clear
等方法来操作集合元素时没有任何区别。
编译和运行上面程序,看到如下运行结果:
1 2 3 4 5 6 7 8
| c集合的元素个数为:2 c集合的元素个数为:1 c集合的是否包含"孙悟空"字符串:true c集合的元素:[孙悟空, 轻量级Java EE企业应用实战] c集合是否完全包含books集合?false c集合的元素:[孙悟空] c集合的元素:[] books集合的元素:[]
|
总结
Collection
的用法有:添加元素
、删除元素
、返回Collection
集合的元素个数以及清空整个集合
等。
当使用System.out
的println()
方法来输出集合对象时,将输出[e1,e2,...]
的形式,这显然是因为所有的Collection
实现类都重写了toString()
方法,该方法可以一次性地输出集合中的所有元素。
如果想依次访问集合里的每一个元素,则需要使用某种方式来遍历集合元素,下面介绍遍历集合元素的两种方法
原文链接: 8.2 Collection和Iterator接口