4.22JavaArrayList的底层实现

4.22JavaArrayList的底层实现

ArrayList的底层实现原理

ArrayList底层是用数组实现的存储

特点:

  • 查询效率高、增删效率低

  • 线程不安全

一般情况下仍然使用ArrayList,因为多数情况不涉及频繁的修改

频繁修改操作:---LinkList

线程安全:---vector

ArrayList源码---为什么ArrayList可以存放任意数量的对象且长度不限?

采用数组扩容的方式实现

先定义一个长度的数组,当超过长度是再去定义一个长度更长的数组,JDK的底层源码是通过算法原长度 + (原长度/2))去定义新的数组的长度

老的数组的内容拷贝到新的数组中

新的内容继续放入新的数组后面

ArrayList源码解读

ArrayList Remove源码

将原数组的后一位索引值拷贝到所要移除的元素的索引位置---所以说如果数组长度很长要用ArrayList改的话就会拷贝索要修改的索引后面所有的元素往前移,费资源且耗时

源码解读:

 

posted @ 2021-04-22 19:07  俊king  阅读(103)  评论(0编辑  收藏  举报