List的实现类及底层代码解析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

Collection:单列数据,定义了存取一组对象的方法集合
List:是继承Collection的接口类,存储的元素是有序、可重复的数组
List的子类:

  1. ArrayList:作为List的主要实现类,线程不安全,执行效率高;底层使用的是Object[] elementData存储;
  2. LinkeList:执行效率比ArrayList高,地层是双向链表结构,因此对于频繁的删除和插入操作,使用LinkeList。
  3. Vector:是List的古老实现类,线程安全但是效率低;底层使用的是Object[] elementData存储;

提示:以下是本篇文章正文内容,下面案例可供参考

一、ArrayList的扩容机制

  1. jdk7:
    实例化ArrayList时,默认是创建容量为10的数组,当对数组进行新增操作时,当数组容量不够时,通常扩大为原来容量的1.5倍。
  2. jdk8:
    实例化ArrayList对象是,在没有指定容量的情况下,是不会去创建数组,当要往数组里面添加元素时,才会创建长度为10的数组,扩容方式与jdk7相同。

二、Vectort的扩容机制

  • JDK7和JDK8中通过Vector()构造器创建对象时,底层创建了长度为10的数组,在扩容方面,默认扩容为原来数组长度的2倍

总结

记录所学

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值