public abstract class AbstractList<E>

  1. Object
  2. AbstractCollection<E>
  3. AbstractList

ImplementsCollection<E>, Iterable<E>, List<E>

Known subtypesAbstractSequentialList, ArrayList, Vector

AbstractList is an abstract implementation of the List interface, optimized for a backing store which supports random access. This implementation does not support adding or replacing. A subclass must implement the abstract methods get() and size(), and to create a modifiable List it’s necessary to override the add() method that currently throws an UnsupportedOperationException.

Fields

protected transient int modCountA counter for changes to the list.

Constructors

protected AbstractList()Constructs a new instance of this AbstractList.

Methods

public void add(int location, E object)Inserts the specified object into this List at the specified location.
public boolean add(E object)Adds the specified object at the end of this List.
public boolean addAll(int location, Collection<? extends E> collection)Inserts the objects in the specified Collection at the specified location in this List.
public void clear()Removes all elements from this list, leaving it empty.
public boolean equals(Object object)Compares the specified object to this list and return true if they are equal.
public abstract E get(int location)Returns the element at the specified location in this list.
public int hashCode()Returns the hash code of this list.
public int indexOf(Object object)Searches this list for the specified object and returns the index of the first occurrence.
public Iterator<E> iterator()Returns an iterator on the elements of this list.
public int lastIndexOf(Object object)Searches this list for the specified object and returns the index of the last occurrence.
public ListIterator<E> listIterator()Returns a ListIterator on the elements of this list.
public ListIterator<E> listIterator(int location)Returns a list iterator on the elements of this list.
public E remove(int location)Removes the object at the specified location from this list.
protected void removeRange(int start, int end)Removes the objects in the specified range from the start to the end index minus one.
public E set(int location, E object)Replaces the element at the specified location in this list with the specified object.
public List<E> subList(int start, int end)Returns a part of consecutive elements of this list as a view.
public Object[] toArray()Returns a new array containing all elements contained in this ArrayList.
public <T> T[] toArray(T[] contents)Returns an array containing all elements contained in this ArrayList.

Inherited methods

Field details

modCount

protected transient int modCount
A counter for changes to the list.

Constructor details

AbstractList

protected AbstractList()
Constructs a new instance of this AbstractList.

Method details

add

public void add(int location, E object)

Inserts the specified object into this List at the specified location. The object is inserted before any previous element at the specified location. If the location is equal to the size of this List, the object is added at the end.

Concrete implementations that would like to support the add functionality must override this method.

Parameters

location int
the index at which to insert.
object E
the object to add.

Throws

UnsupportedOperationException
if adding to this List is not supported.
ClassCastException
if the class of the object is inappropriate for this List
IllegalArgumentException
if the object cannot be added to this List
IndexOutOfBoundsException
if location = size()

add

public boolean add(E object)
Adds the specified object at the end of this List.

Parameters

object E
the object to add

Returns

true

Throws

UnsupportedOperationException
if adding to this List is not supported
ClassCastException
if the class of the object is inappropriate for this List
IllegalArgumentException
if the object cannot be added to this List

addAll

public boolean addAll(int location, Collection<? extends E> collection)
Inserts the objects in the specified Collection at the specified location in this List. The objects are added in the order they are returned from the collection’s iterator.

Parameters

location int
the index at which to insert.
collection Collection<? extends E>
the Collection of objects

Returns

true if this List is modified, false otherwise.

Throws

UnsupportedOperationException
if adding to this list is not supported.
ClassCastException
if the class of an object is inappropriate for this list.
IllegalArgumentException
if an object cannot be added to this list.
IndexOutOfBoundsException
if location size()

clear

public void clear()
Removes all elements from this list, leaving it empty.

Throws

UnsupportedOperationException
if removing from this list is not supported.

equals

public boolean equals(Object object)
Compares the specified object to this list and return true if they are equal. Two lists are equal when they both contain the same objects in the same order.

Parameters

object Object
the object to compare to this object.

Returns

true if the specified object is equal to this list, false otherwise.

See also

get

public abstract E get(int location)
Returns the element at the specified location in this list.

Parameters

location int
the index of the element to return.

Returns

the element at the specified index.

Throws

IndexOutOfBoundsException
if location = size()

hashCode

public int hashCode()
Returns the hash code of this list. The hash code is calculated by taking each element’s hashcode into account.

Returns

the hash code.

indexOf

public int indexOf(Object object)
Searches this list for the specified object and returns the index of the first occurrence.

Parameters

object Object
the object to search for.

Returns

the index of the first occurrence of the object, or -1 if it was not found.

iterator

public Iterator<E> iterator()
Returns an iterator on the elements of this list. The elements are iterated in the same order as they occur in the list.

Returns

an iterator on the elements of this list.

See also

lastIndexOf

public int lastIndexOf(Object object)
Searches this list for the specified object and returns the index of the last occurrence.

Parameters

object Object
the object to search for.

Returns

the index of the last occurrence of the object, or -1 if the object was not found.

listIterator

public ListIterator<E> listIterator()
Returns a ListIterator on the elements of this list. The elements are iterated in the same order that they occur in the list.

Returns

a ListIterator on the elements of this list

See also

listIterator

public ListIterator<E> listIterator(int location)
Returns a list iterator on the elements of this list. The elements are iterated in the same order as they occur in the list. The iteration starts at the specified location.

Parameters

location int
the index at which to start the iteration.

Returns

a ListIterator on the elements of this list.

Throws

IndexOutOfBoundsException
if location size()

See also

remove

public E remove(int location)
Removes the object at the specified location from this list.

Parameters

location int
the index of the object to remove.

Returns

the removed object.

Throws

UnsupportedOperationException
if removing from this list is not supported.
IndexOutOfBoundsException
if location = size()

removeRange

protected void removeRange(int start, int end)
Removes the objects in the specified range from the start to the end index minus one.

Parameters

start int
the index at which to start removing.
end int
the index after the last element to remove.

Throws

UnsupportedOperationException
if removing from this list is not supported.
IndexOutOfBoundsException
if start = size().

set

public E set(int location, E object)
Replaces the element at the specified location in this list with the specified object.

Parameters

location int
the index at which to put the specified object.
object E
the object to add.

Returns

the previous element at the index.

Throws

UnsupportedOperationException
if replacing elements in this list is not supported.
ClassCastException
if the class of an object is inappropriate for this list.
IllegalArgumentException
if an object cannot be added to this list.
IndexOutOfBoundsException
if location = size()

subList

public List<E> subList(int start, int end)

Returns a part of consecutive elements of this list as a view. The returned view will be of zero length if start equals end. Any change that occurs in the returned subList will be reflected to the original list, and vice-versa. All the supported optional operations by the original list will also be supported by this subList.

This method can be used as a handy method to do some operations on a sub range of the original list, for example list.subList(from, to).clear();

If the original list is modified in other ways than through the returned subList, the behavior of the returned subList becomes undefined.

The returned subList is a subclass of AbstractList. The subclass stores offset, size of itself, and modCount of the original list. If the original list implements RandomAccess interface, the returned subList also implements RandomAccess interface.

The subList’s set(int, Object), get(int), add(int, Object), remove(int), addAll(int, Collection) and removeRange(int, int) methods first check the bounds, adjust offsets and then call the corresponding methods of the original AbstractList. addAll(Collection c) method of the returned subList calls the original addAll(offset + size, c).

The listIterator(int) method of the subList wraps the original list iterator. The iterator() method of the subList invokes the original listIterator() method, and the size() method merely returns the size of the subList.

All methods will throw a ConcurrentModificationException if the modCount of the original list is not equal to the expected value.

Parameters

start int
start index of the subList (inclusive).
end int
end index of the subList, (exclusive).

Returns

a subList view of this list starting from start (inclusive), and ending with end (exclusive)

Throws

IndexOutOfBoundsException
if (start size())
IllegalArgumentException
if (start > end)

toArray

public Object[] toArray()
Returns a new array containing all elements contained in this ArrayList.

Returns

an array of the elements from this ArrayList

toArray

public <T> T[] toArray(T[] contents)
Returns an array containing all elements contained in this ArrayList. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this ArrayList, the array element following the collection elements is set to null.

Parameters

contents T[]
the array.

Returns

an array of the elements from this ArrayList.

Throws

ArrayStoreException
when the type of an element in this ArrayList cannot be stored in the type of the specified array.