java.util.Collection 接口
作者: zccst
java.util.Collection 接口是描述 Set 和 List 集合类型的根接口,其中定义了有关集合操作的普遍性方法(部分):
boolean add(Object o); // 将指定对象添加到集合中
boolean remove(Object o); // 移除指定对象。返回值为 Boolean 性,如果指定对象存在,返回 true ,否则返回 false 。
int size(); // 集合中存放对象的个数
boolean isEmpty(); // 是否为空,是则返回 true
boolean contains(Object O); // 查看集合中是否存在指定对象
void clear(); // 移除集合中使用对象,清空该集合
iterator iterator(); // 遍历集合中所有对象
object[] toArray(); // 返回一个包含所有对象的 Object 型数组
注:由于 Collection 主要在 java 开发早期使用,但是随着 Java 的发展,为了让程序的开发及使用更加明确,例如,此集合中的内容是否可以重复、是否可以排序等,所以提倡直接使用 Collection 的子接口,比如: List 、 Set 等。现在已经很少直接使用 Collection 接口了。
不细心的初学者,可能会问为什么 Collection 是接口,但却有操作集合元素的实现方法,不是接口中只有抽象方法吗,怎么会有实现的方法呢?
这是由于没有弄清楚 Collection 与 Collections 的区别。下面就来看一下:
先看英文解释:
Collection is an interface. //Collection 是接口
Collections is a concrete utility class. //Collections 是(对集合进行操作的)具体的工具类
既然 Collection 是接口,那么它的方法就是抽象方法,不能直接使用。
而 Collections 是具体的工具类,提供一些静态的对于 Collection 的方法,比如排序,查找,等等,让你操作集合很方便。所以当然可以直接使用它的方法。关于 Collections 的介绍,在 Enumeration 接口和 Collections 类一文中有详细讲解。
java.util.Set 和 java.util.List 分别描述前述的集合和列表结构,二者均为 Collection 的子接口。
List 接口中规定使用者可以对列元素的插入位置进行精确控制,并添加了根据元素索引来访问元素的功能。接口中新添加的相应方法如下:
void add(int index, Object O);
Object get(int index);
Object set(int index, Object element);
int indexOf(Object O);
Object remove(int index);
注:在 Java 类库中,没有直接继承 Collection 的类,都是继承 Collection 的子接口,比如: List 、 Set 等,而且都不相交,也就是不可以既是 List 又是 Set 。