Java Collection源码分析

1.Collection接口是集合继承关系中的根接口(root interface),有些集合允许重复元素, 有些集合有序,JDK不提供本接口的实现,只提供子接口的实现(例如Set,List) 

2.所有实现Collection(或者其子接口)的类都必须包含两个构造函数:无参的构造函数, 以及参数为Collection的拷贝构造函数

Java Collection源码如下:


package java.util;   

10.public interface Collection<E>extends Iterable<E> {   
11.       
12.   //返回集合中存在的元素。如果元素的数目超过Integer.MAX_VALUE,返回Integer.MAX_VALUE   
13.   int size();   
14.       
15.   //当集合不包含任何元素时,返回true   
16.   boolean isEmpty();   
17.       
18.   //如果集合中包含至少一个指定对象,返回true   
19.   boolean contains(Object o);   
20.       
21.   //返回可以遍历集合元素的迭代器   
22.    Iterator<E> iterator();   
23.       
24.   //返回集合中所有元素组成的数组,数组元素的返回顺序要和迭代器访问集合元素的返回顺序一样   
25.    Object[] toArray();   
26.       
27.   //返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。   
28.    <T> T[] toArray(T[] a);   
29.       
30.   //如果集合不允许重复元素,且集合中已经含有该元素,返回false   
31.   boolean add(E e);   
32.       
33.   //从此 collection 中移除指定元素的单个实例,如果集合中存在指定元素返回true。   
34.   boolean remove(Object o);   
35.       
36.   //如果此 collection 包含指定 collection 中的所有元素,则返回 true。   
37.   boolean containsAll(Collection<?> c);   
38.       
39.   //将指定 collection 中的所有元素都添加到此 collection 中   
40.   boolean addAll(Collection<?extends E> c);   
41.       
42.   //移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。   
43.   boolean removeAll(Collection<?> c);   
44.       
45.   //仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。   
46.   boolean retainAll(Collection<?> c);   
47.       
48.   //移除此 collection 中的所有元素(可选操作)。   
49.   void clear();   
50.       
51.   //比较此 collection 与指定对象是否相等。通过覆盖,实现list与list相等,set与set相等   
52.   boolean equals(Object o);   
53.       
54.   //返回此 collection 的哈希码值。   
55.   int hashCode();   
56.} 

精彩推荐