java.util.ArrayList

ArrayList浅谈

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

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

它的实现原理:

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

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

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

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


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

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

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

ArrayList的常用方法


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


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


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

removeAll 批量删除数据

int i = arrayList.size();

size 返回大小


set 修改 谋个下标的数据


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

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值