ArrayList原理

简介

  • 是一个数组队列,容量能动态增长
  • 继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable等接口
  • 实现了RandmoAccess接口,即提供了随机访问功能,我们可以通过元素的序号快速获取元素对象
  • 实现了Cloneable接口,能被克隆
  • 实现java.io.Serializable接口,能通过序列化去传输
  • 操作不是线程安全的

数据结构

  • elementData:是”Object[]类型的数组”,支持动态增长。若使用默认构造函数,则ArrayList的默认容量大小是10
  • size:动态数组的实际大小

扩容方案:ArrayList会重新设置容量:新的容量=“(原始容量x3)/2 + 1”,比当前容量的一半多一个。数据会被拷贝到新数组中。


遍历方式

  • 迭代器:效率低
  • 随机访问:效率较高
  • for循环



版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接,感谢各位看官!!!

本文出自:monkeyGeek

座右铭:生于忧患,死于安乐

欢迎志同道合的朋友一起交流、探讨!

monkeyGeek

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×