我们在学习这一块内容时需要注意的一个问题是 集合中存放的依然是对象的引用而不是对象本身。List接口扩展了Collection并声明存储一系列元素的类集的特性。使用一个基于零的下标,元素可以通过它们在列表中的位置**入和访问。一个列表可以包含重复元素。List在集合中是一个比 ...
我们在学习这一块内容时需要注意的一个问题是 集合中存放的依然是对象的引用而不是对象本身。
List接口扩展了Collection并声明存储一系列元素的类集的特性。使用一个基于零的下标,元素可以通过它们在列表中的位置**入和访问。一个列表可以包含重复元素。List在集合中是一个比较重要的知识点也是在开发中最常用的。
我们都知道ArrayList是由数组实现的,但是和数组有很大区别的是随着向ArrayList中不断添加元素,其容量也自动增长,而数组声明好之后其容量就不会改变。想要探明其中的究竟探析其中的原理十分重要,今天重新看了一下这块的源代码(JDK1.8.0_92)感觉很有收获,所以在此记录和分享。
1.Arraylist类中的属性
1 public class ArrayList<E> extends AbstractList<E> 2 implements List<E>, RandomAccess, Cloneable, java.io.Serializable 3 { 4 private static final long serialVersionUID = 8683452581122892189L; 5 6 /** 7 *默认初始容量 8 */ 9 private static final int DEFAULT_CAPACITY = 10;10 11 /**12 *被用于空实例的共享空数组实例13 */14 private static final Object[] EMPTY_ELEMENTDATA = {};15 16 /**17 * Object[]类型的数组,保存了添加到ArrayList中的元素。ArrayList的容量是该Object[]类型数组的长度18 * 当第一个元素被添加时,任何空ArrayList中的elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA将会被19 * 扩充到DEFAULT_CAPACITY(默认容量)。20 */21 private transient Object[] elementData;22 23 /**24 * ArrayList的大小(其实就是size()方法返回的那个值)25 *26 * @serial27 */28 private int size;29 30 ......31 32 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:javase基础回顾(一)ArrayList深入解析 解读ArrayList源代码(JDK1.8.0_92)
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。