java.util.ArrayList 「爱情、让人受尽委屈。」 2022-05-23 09:29 85阅读 0赞 ArrayList浅谈 优点:有序,可以按下标操作,添加速度快 缺点:检索能力差,按下标对数据进行操作时,都要大动干戈,把相关数据的位置都要移动。 它的实现原理: 我们都知道数组的长度是不可改变的,假设我现在有一个长度为10的数组,我们现在把数据一个一个的忘这个数组里面添加,当添加到第10个数据时,这个数组就满了。如果这个时候我们还有数据需要添加,那怎么办呢? 解决办法,我们重新申请一个新的数组,长度要比原来的数组的长度还要长,可以是两倍长度也可以是更长,然后把原来的数组的全部数据拷贝到新的数组上去。这样我们是不是就可以使用新的数组去继续存储数据了呢?yes \----------------------------------------- 我们就按照这个思路来简单的自己制作一个ArrayList的一个add添加方法: ![70][] \----------------------------------------- 还有删除方法,就是把指定删除下标的后面的数据全部往前移动覆盖,然后把suze属性加1,即可实现。批量添加或批量删除,按下标添加后者删除等方法的实现原理都差不多,可以自己去看一看源码。这里就不一一介绍咯 \----------------------------------------- ArrayList的常用方法 ![70 1][] 构造器参数可以设置初始内部数组长度,也可以传入Collection对象,它会自动把你Collection集合的数据添加进去。 ![70 2][] add 添加数据,直接添加或者给定下标位置进行添加 ![70 3][] remove 删除数据,按内容删除或者按下标删除 ![70 4][] removeAll 批量删除数据 int i = arrayList.size(); size 返回大小 ![70 5][] set 修改 谋个下标的数据 ![70 6][] indexOF 搜索数据在第集合的几个下标 [70]: /images/20220523/63733c96cae8413580842a8ef7cb828b.png [70 1]: /images/20220523/6016abd50ee746838800c897ab1007b6.png [70 2]: /images/20220523/5f3c5d7246524de29e2a7eab0e77a105.png [70 3]: /images/20220523/18d465726c414e25ae46fe5aeae53a8e.png [70 4]: /images/20220523/9c4511a4f2ca41babb942c53897846ba.png [70 5]: /images/20220523/3ea8d2c4506d4ea78cb4507b3153ab42.png [70 6]: /images/20220523/f23b1e17527041ec8d313ce0344e967d.png
还没有评论,来说两句吧...