通过域名访问网站,苏州网站建设网络,微站是什么意思,江苏建科建筑培训网Java基础之#xff1a;List——ArrayList VectorArrayList简单介绍ArrayList实现了List接口#xff0c;底层是一个数组#xff0c;并实现了可变的功能。底层属性(transient Object[] elementData;)在序列化时#xff0c;忽略该属性。ArrayList实现了List接口#xf…Java基础之List——ArrayList VectorArrayList简单介绍ArrayList实现了List接口底层是一个数组并实现了可变的功能。底层属性(transient Object[] elementData;)在序列化时忽略该属性。ArrayList实现了List接口所以它可以允许出现重复值也可以使用List中的所有方法。ArrayList与Vector基本相同ArrayList是线程不安全的但比Vector效率更高。ArrayList底层源码分析ArrayList底层维护了一个Object类型的数组elementData。(transient Object[] elementData;)当创建对象时如果是用的是无参构造器public ArrayList()则默认初始化elementData容量为0。当添加元素时先判断是否有足够的容量进行添加若不够则进行扩容调用grow()方法若足够则直接在对应位置添加元素即可。在使用无参构造public ArrayList()的情况下第一次扩容默认为10之后再需要扩容的话则扩容elementData为1.5倍即10 10 / 2 15若使用有参构造public ArrayList(int initialCapacity)则默认初始化elementData容量为initialCapacity。那么在第一次扩容时则直接扩容elementData到1.5倍initialCapacity。源码追踪代码说明package class_ArrayList;import java.util.ArrayList;public class ClassTest01_Debug { SuppressWarnings({ unchecked, rawtypes }) public s.........