ArrayList底层实现总结---面试题

ArrayList底层实现总结

实现是非常简单的

add方法是如何实现的呢

  • 1.先进行判断,判断集合的容量是否能装的下
  • 2.如果装不下就扩容,是以1.5倍 将原来的数组容量拷贝到新数组中

get方法是如何实现的呢

  • 1.直接提供了根据index 下标进行查询,效率是非常高的

Remove方法是如何实现的呢

  • 1.先查找到删除对应index的下标位置+1 到最后index元素值向前移动一位

在来一个面试题吧

总结:Vector和ArrayList集合的区别

相同点:
  • 1.ArrayList和Vector默认 初始化容量=10
  • 2.都是基于数组实现的
  • 3.都是List下的子类
不同点:
  • 1.Arraylist 线程是不安全的,Vector线程是安全的
  • 2.ArrayList 每次扩容是原来的1.5倍
  • 3.Vector每次扩容是原来的2倍
  • 4.Vector可以设置每次扩容的容量
  • 5.Arraylist 懒加载的形式初始化容量的 Vector直接通过构造函数初始化 数组的容量就是10
posted @ 2022-03-23 16:10  秃头星人  阅读(137)  评论(0)    收藏  举报