Linkedlist、Linklist、Vector的区别

/* List 接口的实现

  • AarryList :
  • 底层实现: 可变数组实现的,内部 通过数组拷贝实现根据内容可变长
  • 优点 : 根据索引查询效率高
  • 缺点 :错增加删除时效率低,因为要通过数组拷贝实现
  • 应用场景: 存储耽搁数据,有序可以重复–>大量做查询,少量增删,推荐使用ArrayList
  • 扩容: 在第一次添加数据时候初始容量10 , 通过Arrays.copyof方法进行动态扩容,每次扩容原容量的1.5倍 int newCapacity = oldCapacity + (oldCapacity >> 1);
  • Vector:
  • 底层实现: 可变数组实现的,
  • 扩容:: 在第一次添加数据时候初始容量10 , 每次扩容原容量的2倍
  • 与ArrayList不同点: 1)AarryList线程不安全 ,vector线程安全 2)扩容问题: ArrayList1.5倍增长 vector2倍增长 ArrayList更有利于节省内存
  • LinkedList:
  • 底层实现: 双向链表实现的
    *优点:增删效率高
  • 缺点: 查询效率低
  • 应用场景: 存储耽搁数据,有序可以重复–>如果做大量的增删,少量的查询,推荐使用LinkedList
  • ArrayList()
    构造一个初始容量为 10 的空列表。
    ArrayList(Collection<? extends E> c)
    构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
    ArrayList(int initialCapacity)
    构造一个具有指定初始容量的空列表。

*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值