一、定义
public interface Collection<E> extends Iterable<E> {}
它是一个接口,是高度抽象出来的集合,它包含了集合的基本操作:添加、删除、清空、遍历(读取)、是否为空、获取大小、是否保护某元素等等。
Collection接口的所有子类(直接子类和间接子类)都必须实现2种构造函数:不带参数的构造函数 和 参数为Collection的构造函数。带参数的构造函数,可以用来转换Collection的类型。
二、Collection接口的常用方法,详细请查API
1、boolean add(E e)
向集合中添加一个元素。集合更改则添加成功返回true,如果该集合不允许重复并且已经包含指定的元素。返回false。部分子类的add方法可能会限制添加到集合中的元素类型,或者不会将NULL添加到集合中。
2、boolean remove(Object o)
删除集合中的指定的元素。如果存在NULL,也删除。
3、boolean isEmpty()
如果集合中没有元素返回true。
4、void clear()
清空掉集合中的所有元素
5、int size()
返回该集合中元素的个数。如果超过了Integer.MAX_VALUE,那么返回Integer.MAX_VALUE。
6、Object[] toArray():这个方法是集合和数组转化的桥梁。
见名知意,返回包含此集合中所有元素的数组。如果这个集合的迭代器保证元素有序,那么该方法与其迭代器中元素顺序一致。并且该方法返回的数组是拷贝出来的(某些集合底层数组实现,区别这个),可以进行任意的更改。
三、遍历Collection元素
从Collection定义可以看出,它继承了Iterable接口,说明了Collection接口是可迭代的。而这个Iterable接口又只有一个iterator()方法。返回值是Iterator对象。即返回的是对应实现类的迭代器对象。
如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:
Iterator it = collection.iterator(); // 获得一个迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}