ArrayList toArray(T[] a) 源码
时间: 2023-12-20 21:04:31 浏览: 67
ArrayList的源码
5星 · 资源好评率100%
ArrayList的toArray(T[] a)方法的源码如下:
```java
public <T> T[] toArray(T[] a) {
if (a.length < size)
return (T[]) Arrays.copyOf(elementData, size, a.getClass());
System.arraycopy(elementData, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}
```
该方法主要有三个步骤:
1. 检查参数数组a的长度是否足够存储ArrayList中的元素,如果不足则创建一个新的数组;
2. 将ArrayList中的元素复制到参数数组a中;
3. 如果参数数组a的长度大于ArrayList中元素的数量,则将多余的元素设为null。
其中,elementData是存储ArrayList元素的数组,size是ArrayList中元素的数量。
如果参数数组a的长度小于ArrayList中元素的数量,toArray方法会创建一个新的数组,并将elementData数组中的元素复制到新数组中,然后返回该新数组;如果参数数组a的长度大于或等于ArrayList中元素的数量,则将elementData数组中的元素复制到参数数组a中,并返回参数数组a。在复制元素的过程中,toArray方法会将elementData数组中的元素转换为参数数组a中元素的类型。
综上所述,ArrayList的toArray(T[] a)方法主要是将存储元素的数组复制到参数数组a中,并返回参数数组a。该方法的时间复杂度为O(n),其中n是ArrayList中元素的数量。
阅读全文