- [ArrayList](#arraylist)
- [ArrayList](#arraylist)
- [ArrayList](#arraylist)
- [System.arraycopy\(\)Arrays.copyOf\(\)](#systemarraycopyarrayscopyof)
- [](#)
- [ArrayList](#arraylist)
- [](#)
- [ArrayListDemo](#arraylistdemo)
### ArrayList
ArrayList Java `ensureCapacity` ArrayList
**AbstractList** **List**, **RandomAccess**, **Cloneable**, **java.io.Serializable**
**On**, i **O1**
ArrayList AbstractListList
ArrayList **RandomAccess ** RandomAccess List **** ArrayList
ArrayList **Cloneable ** clone()****
ArrayList **java.io.Serializable **ArrayList********
Vector **ArrayList ** ArrayList Vector CopyOnWriteArrayList
### ArrayList
```java
package java.util;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.function.UnaryOperator;
public class ArrayList extends AbstractList
implements List, RandomAccess, Cloneable, java.io.Serializable
{
private static final long serialVersionUID = 8683452581122892189L;
/**
*
*/
private static final int DEFAULT_CAPACITY = 10;
/**
*
*/
private static final Object[] EMPTY_ELEMENTDATA = {};
//
//EMPTY_ELEMENTDATA
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
/**
* ArrayList
*/
transient Object[] elementData; // non-private to simplify nested class access
/**
* ArrayList
*/
private int size;
/**
*
*/
public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
//initialCapacity
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
//
this.elementData = EMPTY_ELEMENTDATA;
} else {
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
}
}
/**
*DEFAULTCAPACITY_EMPTY_ELEMENTDATA 0.10 10
*/
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
/**
*
*/
public ArrayList(Collection