Collection逐句解析
Collection是所有集合类的一个基类,所以解析集合源码,先解析这个基础类。
静态常量解析
-
int size()
返回集合的数量,如果集合大于Integer.MAX_VALUE,就返回Integer.MAX_VALUE。 -
boolean isEmpty()
如果集合中没有元素,返回true。 -
boolean contains(Object o)
如果集合中包含特定元素,返回true.
如果元素类型不匹配,抛出ClassCastException,
如果元素为null,并且集合不支持null,抛出 NullPointerException -
Iterator iterator()
返回一个迭代器,并不保证迭代的顺序,除非某个集合本身提供保证。 -
Object[] toArray()
返回集合本身的数组,如果集合本身保证顺序,则该函数也必须保证顺序。该方法是array-based和collection-based的桥梁。 -
T[] toArray(T[] a)
该函数后期补充。 -
boolean add(E e)
向集合中添加元素,部分集合有一些特殊约束不允许添加某种元素,比如null,或相同元素。如果集合不支持该操作,或弹出UnsupportedOperationException。 -
boolean remove(Object o)
移除集合中的某元素。如果集合不支持该操作,或弹出UnsupportedOperationException。 -
boolean containsAll(Collection<?> c)
如果集合中包含参数集合中的所有元素,返回true。 -
boolean addAll(Collection<? extends E> c)
添加所有的元素,如果在操作进行过程中修改了指定的集合,则此操作的行为是不确定的。 -
boolean removeAll(Collection<?> c)
移除所有集合中元素,此操作过后,集合中不存在和c中相同的元素。 -
default boolean removeIf(Predicate<? super E> filter)
删除满足给定条件的元素。使用Iterator遍历,Iterator#remove()移除,如果该集合不支持迭代移除,则返回UnsupportedOperationException,在第一个匹配元素的时候 -
boolean retainAll(Collection<?> c)
移除所有不包含在特殊集合中的元素。 -
void clear();
清除所有元素。