您的位置 首页 java

Java面试题 Part15 手写ArrayList(二)

Java

第一部分请看《 Java面试题 Part13 手写ArrayList(一) 》

1

在指定位置插入元素。

首先要扩容,然后将数组中要插入位置之后的所有元素向后挪一位,再将新元素设置在指定位置上。

2

3

删除指定元素,要先遍历数组,获取此元素在数组的具体位置。

删除指定位置的元素,就是讲此元素之后的所有元素都往前挪一位,然后把最后位置的元素置为Null。

4

清空方法就是讲内部的数组每个元素置为Null,把size设为0。

将Collection增加至List里,首先是将Collection转为数组,然后将原List数组的长度扩容为原长度+新数组长度。

然后将新数组复制进原数组。

System.arraycopy(要复制的数组,要复制数组的开始位置,被添加的数组,从被添加的数组第几个位置开始添加,添加多少个元素)。

List的Size增加。

5

在之前说元素的时候指出数组dataArr是transient,即不会被序列化。那么ArrayList的序列化、反序列化就是靠writeObj和readObj两个方法。

文章来源:智云一二三科技

文章标题:Java面试题 Part15 手写ArrayList(二)

文章地址:https://www.zhihuclub.com/196955.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图