Class TreeList<E>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- org.apache.commons.collections4.list.TreeList<E>
-
- All Implemented Interfaces:
Iterable<E>,Collection<E>,List<E>
public class TreeList<E> extends AbstractList<E>
AListimplementation that is optimised for fast insertions and removals at any index in the list.This list implementation utilises a tree structure internally to ensure that all insertions and removals are O(log n). This provides much faster performance than both an
ArrayListand aLinkedListwhere elements are inserted and removed repeatedly from anywhere in the list.The following relative performance statistics are indicative of this class:
get add insert iterate remove TreeList 3 5 1 2 1 ArrayList 1 1 40 1 40 LinkedList 5800 1 350 2 325ArrayListis a good general purpose list implementation. It is faster thanTreeListfor most operations except inserting and removing in the middle of the list.ArrayListalso uses less memory asTreeListuses one object per entry.LinkedListis rarely a good choice of implementation.TreeListis almost always a good replacement for it, although it does use slightly more memory.- Since:
- 3.1
-
-
Constructor Summary
Constructors Constructor Description TreeList()Constructs a new empty list.TreeList(Collection<? extends E> coll)Constructs a new empty list that copies the specified collection.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int index, E obj)Adds a new element to the list.booleanaddAll(Collection<? extends E> c)Appends all of the elements in the specified collection to the end of this list, in the order that they are returned by the specified collection's Iterator.voidclear()Clears the list, removing all entries.booleancontains(Object object)Searches for the presence of an object in the list.Eget(int index)Gets the element at the specified index.intindexOf(Object object)Searches for the index of an object in the list.Iterator<E>iterator()Gets an iterator over the list.ListIterator<E>listIterator()Gets a ListIterator over the list.ListIterator<E>listIterator(int fromIndex)Gets a ListIterator over the list.Eremove(int index)Removes the element at the specified index.Eset(int index, E obj)Sets the element at the specified index.intsize()Gets the current size of the list.Object[]toArray()Converts the list into an array.-
Methods inherited from class java.util.AbstractList
add, addAll, equals, hashCode, lastIndexOf, subList
-
Methods inherited from class java.util.AbstractCollection
containsAll, isEmpty, remove, removeAll, retainAll, toArray, toString
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface java.util.List
containsAll, isEmpty, remove, removeAll, replaceAll, retainAll, sort, spliterator, toArray
-
-
-
-
Constructor Detail
-
TreeList
public TreeList()
Constructs a new empty list.
-
TreeList
public TreeList(Collection<? extends E> coll)
Constructs a new empty list that copies the specified collection.- Parameters:
coll- the collection to copy- Throws:
NullPointerException- if the collection is null
-
-
Method Detail
-
get
public E get(int index)
Gets the element at the specified index.
-
size
public int size()
Gets the current size of the list.- Specified by:
sizein interfaceCollection<E>- Specified by:
sizein interfaceList<E>- Specified by:
sizein classAbstractCollection<E>- Returns:
- the current size
-
listIterator
public ListIterator<E> listIterator()
Gets a ListIterator over the list.- Specified by:
listIteratorin interfaceList<E>- Overrides:
listIteratorin classAbstractList<E>- Returns:
- the new iterator
-
listIterator
public ListIterator<E> listIterator(int fromIndex)
Gets a ListIterator over the list.- Specified by:
listIteratorin interfaceList<E>- Overrides:
listIteratorin classAbstractList<E>- Parameters:
fromIndex- the index to start from- Returns:
- the new iterator
-
indexOf
public int indexOf(Object object)
Searches for the index of an object in the list.
-
contains
public boolean contains(Object object)
Searches for the presence of an object in the list.- Specified by:
containsin interfaceCollection<E>- Specified by:
containsin interfaceList<E>- Overrides:
containsin classAbstractCollection<E>- Parameters:
object- the object to check- Returns:
- true if the object is found
-
toArray
public Object[] toArray()
Converts the list into an array.- Specified by:
toArrayin interfaceCollection<E>- Specified by:
toArrayin interfaceList<E>- Overrides:
toArrayin classAbstractCollection<E>- Returns:
- the list as an array
-
add
public void add(int index, E obj)Adds a new element to the list.
-
addAll
public boolean addAll(Collection<? extends E> c)
Appends all of the elements in the specified collection to the end of this list, in the order that they are returned by the specified collection's Iterator.This method runs in O(n + log m) time, where m is the size of this list and n is the size of
c.- Specified by:
addAllin interfaceCollection<E>- Specified by:
addAllin interfaceList<E>- Overrides:
addAllin classAbstractCollection<E>- Parameters:
c- the collection to be added to this list- Returns:
trueif this list changed as a result of the call- Throws:
NullPointerException
-
set
public E set(int index, E obj)
Sets the element at the specified index.- Specified by:
setin interfaceList<E>- Overrides:
setin classAbstractList<E>- Parameters:
index- the index to setobj- the object to store at the specified index- Returns:
- the previous object at that index
- Throws:
IndexOutOfBoundsException- if the index is invalid
-
remove
public E remove(int index)
Removes the element at the specified index.
-
clear
public void clear()
Clears the list, removing all entries.- Specified by:
clearin interfaceCollection<E>- Specified by:
clearin interfaceList<E>- Overrides:
clearin classAbstractList<E>
-
-