提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
Collection:单列数据,定义了存取一组对象的方法集合
List:是继承Collection的接口类,存储的元素是有序、可重复的数组
List的子类:
- ArrayList:作为List的主要实现类,线程不安全,执行效率高;底层使用的是Object[] elementData存储;
- LinkeList:执行效率比ArrayList高,地层是双向链表结构,因此对于频繁的删除和插入操作,使用LinkeList。
- Vector:是List的古老实现类,线程安全但是效率低;底层使用的是Object[] elementData存储;
提示:以下是本篇文章正文内容,下面案例可供参考
一、ArrayList的扩容机制
- jdk7:
实例化ArrayList时,默认是创建容量为10的数组,当对数组进行新增操作时,当数组容量不够时,通常扩大为原来容量的1.5倍。 - jdk8:
实例化ArrayList对象是,在没有指定容量的情况下,是不会去创建数组,当要往数组里面添加元素时,才会创建长度为10的数组,扩容方式与jdk7相同。
二、Vectort的扩容机制
- JDK7和JDK8中通过Vector()构造器创建对象时,底层创建了长度为10的数组,在扩容方面,默认扩容为原来数组长度的2倍
总结
记录所学