java.util.ArrayList

ArrayList浅谈

优点:有序,可以按下标操作,添加速度快

缺点:检索能力差,按下标对数据进行操作时,都要大动干戈,把相关数据的位置都要移动。

它的实现原理:

我们都知道数组的长度是不可改变的,假设我现在有一个长度为10的数组,我们现在把数据一个一个的忘这个数组里面添加,当添加到第10个数据时,这个数组就满了。如果这个时候我们还有数据需要添加,那怎么办呢?

解决办法,我们重新申请一个新的数组,长度要比原来的数组的长度还要长,可以是两倍长度也可以是更长,然后把原来的数组的全部数据拷贝到新的数组上去。这样我们是不是就可以使用新的数组去继续存储数据了呢?yes

-----------------------------------------

我们就按照这个思路来简单的自己制作一个ArrayList的一个add添加方法:


-----------------------------------------

还有删除方法,就是把指定删除下标的后面的数据全部往前移动覆盖,然后把suze属性加1,即可实现。批量添加或批量删除,按下标添加后者删除等方法的实现原理都差不多,可以自己去看一看源码。这里就不一一介绍咯

-----------------------------------------

ArrayList的常用方法


构造器参数可以设置初始内部数组长度,也可以传入Collection对象,它会自动把你Collection集合的数据添加进去。


add 添加数据,直接添加或者给定下标位置进行添加


remove 删除数据,按内容删除或者按下标删除

removeAll 批量删除数据

int i = arrayList.size();

size 返回大小


set 修改 谋个下标的数据


indexOF 搜索数据在第集合的几个下标

猜你喜欢

转载自blog.csdn.net/qq_40550973/article/details/80595303
今日推荐