super interfaces: java.util.Iterable
Collection接口是java集合框架的顶级父接口。一个集合就是一组相同类型的元素。一些集合允许存在重复的元素,而其他的则不允许。一些是有序的,而另一些则是无序的。JDK没有提供这个接口的直接实现类,而是提供了一些更加定制化的子接口例如 List Set等。这个接口通常只是用来描述接口的轮廓,以及一个接口所需要的功能的最低配置。
Bags(袋)和mutilsets(多重集合)应该直接实现这个接口。
所有一般用途的集合类(即没有直接实现Collection接口,而是实现了Collection的子接口的集合类们)都应该拥有两个标准的构造函数。一个无参构造函数,和一个有参构造函数。有参构造函数的入参是一个Collection类型的对象。实际上,这个有参构造函数可以让用户拷贝任何类型的集合对象,来构造一个我们所需类型的集合对象。这个原则是一个潜规则(接口没有构造函数)。但是一般的集合类都会遵循这个原则。
这个接口定义的方法,对一些集合实现类来说是不支持的,对于具体的实现类,如果某个方法不被支持可以抛出UnsupportedOperationException异常,如果某个方法对实现类来说是可有可无的或者说是没有任何影响的,也可以抛出UnsupportedOperationException异常,但不是必须的。
某些集合实现类对它包含的元素有一些约束条件,比如有些集合实现不允许出现NULL值,而另一些对其内部元素的类型有约束。如果插入或者查询非法元素可能会抛出 非检查型异常也可能直接返回false。
集合框架的很多方法都是根据 Object.equals 来判断。例如 contains方法 判断集合是否包含元素 o 时,当调用contains方法且集合对象内至少有一个元素 e,程序会遍历集合中的每个元素判断(o==null ? e==null : o.equals(e))是否成立。
某些集合对象在进行递归遍历时,如果其直接或间接包含自身的话,会抛出异常。
<p>int size();</p>
网友评论