public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
Each list has a capacity, and as the array reaches that capacity it is automatically transferred to a larger array. You also have access to ensureCapacity and trimToSize to control the backing array's size, avoiding reallocation or wasted memory.
ArrayList is not synchronized, so if you need multi-threaded access,
consider using:
List l = Collections.synchronizedList(new ArrayList(...));
The iterators are fail-fast, meaning that any structural
modification, except for remove()
called on the iterator
itself, cause the iterator to throw a
ConcurrentModificationException
rather than exhibit
non-deterministic behavior.
Collection
,
List
,
LinkedList
,
Vector
,
Collections.synchronizedList(List)
,
AbstractList
,
Serialized FormmodCount
Constructor and Description |
---|
ArrayList()
Construct a new ArrayList with the default capcity (16).
|
ArrayList(Collection c)
Construct a new ArrayList, and initialize it with the elements
in the supplied Collection.
|
ArrayList(int capacity)
Construct a new ArrayList with the supplied initial capacity.
|
Modifier and Type | Method and Description |
---|---|
void |
add(int index,
Object e)
Adds the supplied element at the specified index, shifting all
elements currently at that index or higher one to the right.
|
boolean |
add(Object e)
Appends the supplied element to the end of this list.
|
boolean |
addAll(Collection c)
Add each element in the supplied Collection to this List.
|
boolean |
addAll(int index,
Collection c)
Add all elements in the supplied collection, inserting them beginning
at the specified index.
|
void |
clear()
Removes all elements from this List
|
Object |
clone()
Creates a shallow copy of this ArrayList (elements are not cloned).
|
boolean |
contains(Object e)
Returns true iff element is in this ArrayList.
|
void |
ensureCapacity(int minCapacity)
Guarantees that this list will have at least enough capacity to
hold minCapacity elements.
|
Object |
get(int index)
Retrieves the element at the user-supplied index.
|
int |
indexOf(Object e)
Returns the lowest index at which element appears in this List, or
-1 if it does not appear.
|
boolean |
isEmpty()
Checks if the list is empty.
|
int |
lastIndexOf(Object e)
Returns the highest index at which element appears in this List, or
-1 if it does not appear.
|
Object |
remove(int index)
Removes the element at the user-supplied index.
|
protected void |
removeRange(int fromIndex,
int toIndex)
Removes all elements in the half-open interval [fromIndex, toIndex).
|
Object |
set(int index,
Object e)
Sets the element at the specified index.
|
int |
size()
Returns the number of elements in this list.
|
Object[] |
toArray()
Returns an Object array containing all of the elements in this ArrayList.
|
Object[] |
toArray(Object[] a)
Returns an Array whose component type is the runtime component type of
the passed-in Array.
|
void |
trimToSize()
Trims the capacity of this List to be equal to its size;
a memory saver.
|
equals, hashCode, iterator, listIterator, listIterator, subList
containsAll, remove, removeAll, retainAll, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
containsAll, equals, hashCode, iterator, listIterator, listIterator, remove, removeAll, retainAll, subList
public ArrayList(int capacity)
capacity
- initial capacity of this ArrayListIllegalArgumentException
- if capacity is negativepublic ArrayList()
public ArrayList(Collection c)
c
- the collection whose elements will initialize this listNullPointerException
- if c is nullpublic void trimToSize()
public void ensureCapacity(int minCapacity)
minCapacity
- the minimum guaranteed capacitypublic int size()
size
in interface Collection
size
in interface List
size
in class AbstractCollection
public boolean isEmpty()
isEmpty
in interface Collection
isEmpty
in interface List
isEmpty
in class AbstractCollection
AbstractCollection.size()
public boolean contains(Object e)
contains
in interface Collection
contains
in interface List
contains
in class AbstractCollection
e
- the element whose inclusion in the List is being testedpublic int indexOf(Object e)
indexOf
in interface List
indexOf
in class AbstractList
e
- the element whose inclusion in the List is being testedpublic int lastIndexOf(Object e)
lastIndexOf
in interface List
lastIndexOf
in class AbstractList
e
- the element whose inclusion in the List is being testedpublic Object clone()
public Object[] toArray()
toArray
in interface Collection
toArray
in interface List
toArray
in class AbstractCollection
public Object[] toArray(Object[] a)
toArray
in interface Collection
toArray
in interface List
toArray
in class AbstractCollection
a
- the passed-in ArrayArrayStoreException
- if the runtime type of a does not allow
an element in this listNullPointerException
- if a is nullpublic Object get(int index)
get
in interface List
get
in class AbstractList
index
- the index of the element we are fetchingIndexOutOfBoundsException
- if index < 0 || index >= size()public Object set(int index, Object e)
set
in interface List
set
in class AbstractList
index
- the index at which the element is being sete
- the element to be setIndexOutOfBoundsException
- if index < 0 || index >= 0public boolean add(Object e)
add
in interface Collection
add
in interface List
add
in class AbstractList
e
- the element to be appended to this listAbstractList.add(int, Object)
public void add(int index, Object e)
add
in interface List
add
in class AbstractList
index
- the index at which the element is being addede
- the item being addedIndexOutOfBoundsException
- if index < 0 || index > size()AbstractList.modCount
public Object remove(int index)
remove
in interface List
remove
in class AbstractList
index
- the index of the element to be removedIndexOutOfBoundsException
- if index < 0 || index >= size()AbstractList.modCount
public void clear()
clear
in interface Collection
clear
in interface List
clear
in class AbstractList
AbstractList.remove(int)
,
AbstractList.removeRange(int, int)
public boolean addAll(Collection c)
addAll
in interface Collection
addAll
in interface List
addAll
in class AbstractCollection
c
- a Collection containing elements to be added to this ListNullPointerException
- if c is nullAbstractCollection.add(Object)
public boolean addAll(int index, Collection c)
addAll
in interface List
addAll
in class AbstractList
index
- the index at which the elements will be insertedc
- the Collection containing the elements to be insertedIndexOutOfBoundsException
- if index < 0 || index > 0NullPointerException
- if c is nullAbstractList.add(int, Object)
protected void removeRange(int fromIndex, int toIndex)
removeRange
in class AbstractList
fromIndex
- the first index which will be removedtoIndex
- one greater than the last index which will be removedIndexOutOfBoundsException
- if fromIndex > toIndex