Collection接口是最基本的容器结构,继承至Iterable接口。在jdk中,它并没有提供实现Collection接口的实体类,它提供了更具体的子接口List和Set。接下来来具体看看Collection的源码。
Collection源码:
package asdf;
/**
* Created by ping.miao on 2015/7/29.
* Collection接口源码分析
*/
import java.util.Iterator;
public interface Collection<E> extends Iterable<E> {
int size();//返回当前集合中元素的个数
boolean isEmpty();//判断集合是否为空,为空的时候返回true
boolean contains(Object o);//判断集合中手否包含一个元素与o相等 (o==null ? e==null : 0o.equals(e))
Iterator<E> iterator();//产生一个包含该集合所有元素的迭代器
Object[] toArray();/*
返回一个包含集合所有元素的数组,这个数组是新产生的一个数组,集合并不对其引用进行维护,换句话说数组的修改
并不反应在集合上,相当于把集合的元素copy到数组里
*/
<T> T[] toArray(T[] a);/**同样是返回集合所有元素组成的数组,不同上面的是该方法返回的数组类型是参数指定
*的数组类型,所以,该方法可能会抛出ArrayStoreException - 指定类型不是此Collection每个元素的运行的超类型
* NullPointerException - 如果指定的数组为 null
*/
boolean add(E e);/**插入元素
* UnsupportedOperationException - 如果此 collection 不支持 add 操作
* ClassCastException - 如果指定元素的类不允许它添加到此 collection 中
* NullPointerException - 如果指定的元素为 null,并且此 collection 不允许 null 元素
* IllegalArgumentException - 如果元素的某属性不允许它添加到此 collection 中
* IllegalStateException - 如果由于插入限制,元素不能在此时间添加
*/
boolean remove(Object o);/**
* 删掉元素o
* 假如集合中有满足 (o==null ? e==null : o.equals(o)) 的元素,返回true
* 可能会抛出异常:ClassCastException - 如果指定元素的类型与此 collection 不兼容(可选)
* NullPointerException - 如果指定的元素为 null,并且此 collection 不允许 null 元素(可选)
* UnsupportedOperationException - 如果此 collection 不支持 remove 操作
*/
boolean containsAll(java.util.Collection<?> c);
boolean addAll(java.util.Collection<? extends E> c);
boolean removeAll(java.util.Collection<?> c);
boolean retainAll(java.util.Collection<?> c);
void clear();
boolean equals(Object o);
int hashCode();//产生hashCode
}