@InterfaceAudience.Private public class SortedList<E> extends Object implements List<E>, RandomAccess
ArrayList
as the underlying
collection so we can support RandomAccess. All mutations create a new copy of the
ArrayList
instance, so can be expensive. This class is only intended for use on
small, very rarely written collections that expect highly concurrent reads.
Read operations are performed on a reference to the internal list at the time of invocation, so will not see any mutations to the collection during their operation. Iterating over list elements manually using the RandomAccess pattern involves multiple operations. For this to be safe get a reference to the internal list first using get().
If constructed with a Comparator
, the list will be sorted using the comparator.
Adding or changing an element using an index will trigger a resort.
Iterators are read-only. They cannot be used to remove elements.
Modifier and Type | Field and Description |
---|---|
private Comparator<? super E> |
comparator |
private List<E> |
list |
Constructor and Description |
---|
SortedList(Collection<? extends E> c,
Comparator<? super E> comparator)
Constructs a list containing the elements of the given collection, in the order returned by the
collection's iterator, that will be sorted with the given comparator.
|
SortedList(Comparator<? super E> comparator)
Constructs an empty list with the default initial capacity that will be sorted using the given
comparator.
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(E e) |
void |
add(int index,
E element) |
boolean |
addAll(Collection<? extends E> c) |
boolean |
addAll(int index,
Collection<? extends E> c) |
void |
clear() |
boolean |
contains(Object o) |
boolean |
containsAll(Collection<?> c) |
List<E> |
get()
Returns a reference to the unmodifiable list currently backing the SortedList.
|
E |
get(int index) |
int |
indexOf(Object o) |
boolean |
isEmpty() |
Iterator<E> |
iterator() |
int |
lastIndexOf(Object o) |
ListIterator<E> |
listIterator() |
ListIterator<E> |
listIterator(int index) |
E |
remove(int index) |
boolean |
remove(Object o) |
boolean |
removeAll(Collection<?> c) |
boolean |
retainAll(Collection<?> c) |
E |
set(int index,
E element) |
int |
size() |
List<E> |
subList(int fromIndex,
int toIndex) |
Object[] |
toArray() |
<T> T[] |
toArray(T[] a) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
equals, hashCode, replaceAll, sort, spliterator
parallelStream, removeIf, stream
private final Comparator<? super E> comparator
public SortedList(Comparator<? super E> comparator)
comparator
- the comparatorpublic SortedList(Collection<? extends E> c, Comparator<? super E> comparator)
c
- the collectioncomparator
- the comparatorpublic List<E> get()
public int size()
public boolean isEmpty()
public <T> T[] toArray(T[] a)
public boolean containsAll(Collection<?> c)
containsAll
in interface Collection<E>
containsAll
in interface List<E>
public boolean addAll(Collection<? extends E> c)
public boolean addAll(int index, Collection<? extends E> c)
public boolean removeAll(Collection<?> c)
public boolean retainAll(Collection<?> c)
public void clear()
public int lastIndexOf(Object o)
lastIndexOf
in interface List<E>
public ListIterator<E> listIterator()
listIterator
in interface List<E>
public ListIterator<E> listIterator(int index)
listIterator
in interface List<E>
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.