AbstractCollection 抽象类 源码

实现Collection

实现方法:

contains()

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

toArray()

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

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

finishToArray()

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

toArray(T [])

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

containsAll()

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

removeAll()

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,404评论 0 4
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 771评论 0 2
  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 1,965评论 0 13
  • 第十天 权限修饰符 public protected default private 同一类 true true ...
    炙冰阅读 550评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,132评论 1 32