AbstractCollection 抽象类 源码


实现Collection

实现方法:


contains()

通过迭代器完成该操作,对传入参数进行判断,分为null和非空.


toArray()

通过该集合的迭代器,以相同的顺序返回一个数组包含集合中的所有元素,数组下标从0开始.

通过迭代器对集合中的元素分配到数组中,但集合中的元素比预期的少时(这种情况时可能发生的,多线程情况下,其他线程删除了集合中的元素),返回当前数组的复制.当运行到方法结尾时,会再一次对迭代器中的是否还有元素进行判断(其他线程添加了元素),如果还存在,那么会调用finishToArray()进行重新分配.


finishToArray()

对数组长度进行扩展,并继续遍历迭代器,将剩余元素放入数组中


toArray(T [])

判断传入数组的长度是否大于集合长度,如果小于则重新分配数组长度.


containsAll()

当当前集合包含了指定集合中的所有元素时,返回true.


removeAll()

从当前集合中移除指定集合的所有元素

你可能感兴趣的:(AbstractCollection 抽象类 源码)