ArrayList使用及原理

集合类是面试中经常会被问到,今天带大家分析一下最常用的集合类之一ArrayList类,希望对大家有所帮助。

ArrayList属于Collection集合类大家族的一员,是分支List中的主力军之一。ArrayList使用非常广泛,无论是在数据库表中查询,还是网络信息爬取都需要使用,所以了解ArrayList的原理就十分重要了(本文ArrayList版本基于JDK 1.8)。

二、ArrrayList的继承关系

通过IDEA生成ArrayList的继承关系图,可以清晰的看出ArrayList的继承关系。入下图。

ArrayList使用及原理

 三、定义ArrayList

ArrayList有三个构造方法:

无参构造方法

参数为整数的构造方法

参数为集合的构造方法

3.1 ArrayList的属性

首先,我们先看一下ArrayList类定义的几个属性。

ArrayList使用及原理

ArrayList使用及原理

/** * Default initial capacity. */ private static final int DEFAULT_CAPACITY = 10; /** * Shared empty array instance used for empty instances. */ private static final Object[] EMPTY_ELEMENTDATA = {}; /** * Shared empty array instance used for default sized empty instances. We * distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when * first element is added. */ private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; /** * The array buffer into which the elements of the ArrayList are stored. * The capacity of the ArrayList is the length of this array buffer. Any * empty ArrayList with elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA * will be expanded to DEFAULT_CAPACITY when the first element is added. */ transient Object[] elementData; // non-private to simplify nested class access /** * The size of the ArrayList (the number of elements it contains). * * @serial */ private int size;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyszxw.html