java.util
Class ArrayList<E>
- Cloneable, Collection<E>, Iterable<E>, List<E>, RandomAccess, Serializable
An array-backed implementation of the List interface. This implements
all optional list operations, and permits null elements, so that it is
better than Vector, which it replaces. Random access is roughly constant
time, and iteration is roughly linear time, so it is nice and fast, with
less overhead than a LinkedList.
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.
ArrayList() - Construct a new ArrayList with the default capacity (16).
|
ArrayList(E> 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.
|
| T[] toArray(T[] a) - Returns an Array whose component type is the runtime component type of
the passed-in Array.
|
boolean | add(E e) - Appends the supplied element to the end of this list.
|
void | add(int index, E e) - Adds the supplied element at the specified index, shifting all
elements currently at that index or higher one to the right.
|
boolean | addAll(E> c) - Add each element in the supplied Collection to this List.
|
boolean | addAll(int index, E> c) - Add all elements in the supplied collection, inserting them beginning
at the specified index. c can contain objects of any type, as well
as null values.
|
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.
|
E | 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.
|
E | 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).
|
E | set(int index, E 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.
|
void | trimToSize() - Trims the capacity of this List to be equal to its size;
a memory saver.
|
add , add , addAll , clear , equals , get , hashCode , indexOf , iterator , lastIndexOf , listIterator , listIterator , remove , removeRange , set , subList |
T[] toArray , add , addAll , clear , contains , containsAll , isEmpty , iterator , remove , removeAll , retainAll , size , toArray , toString |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
ArrayList
public ArrayList()
Construct a new ArrayList with the default capacity (16).
ArrayList
public ArrayList(E> c)
Construct a new ArrayList, and initialize it with the elements
in the supplied Collection. The initial capacity is 110% of the
Collection's size.
c
- the collection whose elements will initialize this list
ArrayList
public ArrayList(int capacity)
Construct a new ArrayList with the supplied initial capacity.
capacity
- initial capacity of this ArrayList
T[] toArray
public T[] toArray(T[] a)
Returns an Array whose component type is the runtime component type of
the passed-in Array. The returned Array is populated with all of the
elements in this ArrayList. If the passed-in Array is not large enough
to store all of the elements in this List, a new Array will be created
and returned; if the passed-in Array is larger than the size
of this List, then size() index will be set to null.
- T[] toArray in interface List<E>
- T[] toArray in interface Collection<E>
- T[] toArray in interface AbstractCollection<E>
- an array representation of this list
add
public boolean add(E e)
Appends the supplied element to the end of this list.
The element, e, can be an object of any type or null.
- add in interface List<E>
- add in interface Collection<E>
- add in interface AbstractList<E>
e
- the element to be appended to this list
- true, the add will always succeed
add
public void add(int index,
E e)
Adds the supplied element at the specified index, shifting all
elements currently at that index or higher one to the right.
The element, e, can be an object of any type or null.
- add in interface List<E>
- add in interface AbstractList<E>
index
- the index at which the element is being addede
- the item being added
addAll
public boolean addAll(E> c)
Add each element in the supplied Collection to this List. It is undefined
what happens if you modify the list while this is taking place; for
example, if the collection contains this list. c can contain objects
of any type, as well as null values.
- addAll in interface List<E>
- addAll in interface Collection<E>
- addAll in interface AbstractCollection<E>
c
- a Collection containing elements to be added to this List
- true if the list was modified, in other words c is not empty
addAll
public boolean addAll(int index,
E> c)
Add all elements in the supplied collection, inserting them beginning
at the specified index. c can contain objects of any type, as well
as null values.
- addAll in interface List<E>
- addAll in interface AbstractList<E>
index
- the index at which the elements will be insertedc
- the Collection containing the elements to be inserted
clone
public Object clone()
Creates a shallow copy of this ArrayList (elements are not cloned).
- clone in interface Object
ensureCapacity
public void ensureCapacity(int minCapacity)
Guarantees that this list will have at least enough capacity to
hold minCapacity elements. This implementation will grow the list to
max(current * 2, minCapacity) if (minCapacity > current). The JCL says
explictly that "this method increases its capacity to minCap", while
the JDK 1.3 online docs specify that the list will grow to at least the
size specified.
minCapacity
- the minimum guaranteed capacity
get
public E get(int index)
Retrieves the element at the user-supplied index.
- get in interface List<E>
- get in interface AbstractList<E>
index
- the index of the element we are fetching
indexOf
public int indexOf(Object e)
Returns the lowest index at which element appears in this List, or
-1 if it does not appear.
- indexOf in interface List<E>
- indexOf in interface AbstractList<E>
e
- the element whose inclusion in the List is being tested
- the index where e was found
removeRange
protected void removeRange(int fromIndex,
int toIndex)
Removes all elements in the half-open interval [fromIndex, toIndex).
Does nothing when toIndex is equal to fromIndex.
- removeRange in interface AbstractList<E>
fromIndex
- the first index which will be removedtoIndex
- one greater than the last index which will be removed
set
public E set(int index,
E e)
Sets the element at the specified index. The new element, e,
can be an object of any type or null.
- set in interface List<E>
- set in interface AbstractList<E>
index
- the index at which the element is being sete
- the element to be set
- the element previously at the specified index
trimToSize
public void trimToSize()
Trims the capacity of this List to be equal to its size;
a memory saver.
ArrayList.java -- JDK1.2's answer to Vector; this is an array-backed
implementation of the List interface
Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.