@GwtCompatible(serializable=true, emulated=true) public abstract class ImmutableList<E> extends ImmutableCollection<E> implements java.util.List<E>, java.util.RandomAccess
List
whose contents will never change, with many other important properties detailed at
ImmutableCollection
.
See the Guava User Guide article on immutable collections.
ImmutableMap
,
ImmutableSet
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
ImmutableList.Builder<E>
A builder for creating immutable list instances, especially
public
static final lists ("constant lists"). |
private static class |
ImmutableList.ReverseImmutableList<E> |
(package private) static class |
ImmutableList.SerializedForm |
(package private) class |
ImmutableList.SubList |
ImmutableCollection.ArrayBasedBuilder<E>
Constructor and Description |
---|
ImmutableList() |
Modifier and Type | Method and Description |
---|---|
void |
add(int index,
E element)
Deprecated.
Unsupported operation.
|
boolean |
addAll(int index,
java.util.Collection<? extends E> newElements)
Deprecated.
Unsupported operation.
|
(package private) static <E> ImmutableList<E> |
asImmutableList(java.lang.Object[] elements)
Views the array as an immutable list.
|
(package private) static <E> ImmutableList<E> |
asImmutableList(java.lang.Object[] elements,
int length)
Views the array as an immutable list.
|
ImmutableList<E> |
asList()
Returns this list instance.
|
static <E> ImmutableList.Builder<E> |
builder()
Returns a new builder.
|
private static <E> ImmutableList<E> |
construct(java.lang.Object... elements)
Views the array as an immutable list.
|
boolean |
contains(java.lang.Object object) |
(package private) int |
copyIntoArray(java.lang.Object[] dst,
int offset)
Copies the contents of this immutable collection into the specified array at the specified
offset.
|
static <E> ImmutableList<E> |
copyOf(java.util.Collection<? extends E> elements)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
copyOf(E[] elements)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
copyOf(java.lang.Iterable<? extends E> elements)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
copyOf(java.util.Iterator<? extends E> elements)
Returns an immutable list containing the given elements, in order.
|
boolean |
equals(java.lang.Object obj) |
int |
hashCode() |
int |
indexOf(java.lang.Object object) |
UnmodifiableIterator<E> |
iterator()
Returns an unmodifiable iterator across the elements in this collection.
|
int |
lastIndexOf(java.lang.Object object) |
UnmodifiableListIterator<E> |
listIterator() |
UnmodifiableListIterator<E> |
listIterator(int index) |
static <E> ImmutableList<E> |
of()
Returns the empty immutable list.
|
static <E> ImmutableList<E> |
of(E element)
Returns an immutable list containing a single element.
|
static <E> ImmutableList<E> |
of(E e1,
E e2)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E e7)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8,
E e9)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8,
E e9,
E e10)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8,
E e9,
E e10,
E e11)
Returns an immutable list containing the given elements, in order.
|
static <E> ImmutableList<E> |
of(E e1,
E e2,
E e3,
E e4,
E e5,
E e6,
E e7,
E e8,
E e9,
E e10,
E e11,
E e12,
E... others)
Returns an immutable list containing the given elements, in order.
|
private void |
readObject(java.io.ObjectInputStream stream) |
E |
remove(int index)
Deprecated.
Unsupported operation.
|
ImmutableList<E> |
reverse()
Returns a view of this immutable list in reverse order.
|
E |
set(int index,
E element)
Deprecated.
Unsupported operation.
|
ImmutableList<E> |
subList(int fromIndex,
int toIndex)
Returns an immutable list of the elements between the specified
fromIndex , inclusive, and toIndex , exclusive. |
(package private) ImmutableList<E> |
subListUnchecked(int fromIndex,
int toIndex)
Called by the default implementation of
subList(int, int) when toIndex - fromIndex > 1 , after index validation has already been
performed. |
(package private) java.lang.Object |
writeReplace() |
add, addAll, clear, isPartialView, remove, removeAll, retainAll, toArray, toArray
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
public static <E> ImmutableList<E> of()
Collections.emptyList()
, and is preferable mainly for consistency
and maintainability of your code.public static <E> ImmutableList<E> of(E element)
Collections.singleton(T)
, but will not
accept a null element. It is preferable mainly for consistency and
maintainability of your code.java.lang.NullPointerException
- if element
is nullpublic static <E> ImmutableList<E> of(E e1, E e2)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5, E e6)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10, E e11)
java.lang.NullPointerException
- if any element is null@SafeVarargs public static <E> ImmutableList<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10, E e11, E e12, E... others)
java.lang.NullPointerException
- if any element is nullpublic static <E> ImmutableList<E> copyOf(java.lang.Iterable<? extends E> elements)
elements
is a Collection
, this method behaves exactly as
copyOf(Collection)
; otherwise, it behaves exactly as copyOf(elements.iterator()
.java.lang.NullPointerException
- if any of elements
is nullpublic static <E> ImmutableList<E> copyOf(java.util.Collection<? extends E> elements)
Despite the method name, this method attempts to avoid actually copying the data when it is safe to do so. The exact circumstances under which a copy will or will not be performed are undocumented and subject to change.
Note that if list
is a List<String>
, then ImmutableList.copyOf(list)
returns an ImmutableList<String>
containing each of the strings in list
, while
ImmutableList.of(list)} returns an ImmutableList<List<String>>
containing one element (the given list itself).
This method is safe to use even when elements
is a synchronized
or concurrent collection that is currently being modified by another
thread.
java.lang.NullPointerException
- if any of elements
is nullpublic static <E> ImmutableList<E> copyOf(java.util.Iterator<? extends E> elements)
java.lang.NullPointerException
- if any of elements
is nullpublic static <E> ImmutableList<E> copyOf(E[] elements)
java.lang.NullPointerException
- if any of elements
is nullprivate static <E> ImmutableList<E> construct(java.lang.Object... elements)
static <E> ImmutableList<E> asImmutableList(java.lang.Object[] elements)
The array must be internally created.
static <E> ImmutableList<E> asImmutableList(java.lang.Object[] elements, int length)
public UnmodifiableIterator<E> iterator()
ImmutableCollection
public UnmodifiableListIterator<E> listIterator()
listIterator
in interface java.util.List<E>
public UnmodifiableListIterator<E> listIterator(int index)
listIterator
in interface java.util.List<E>
public int indexOf(@Nullable java.lang.Object object)
indexOf
in interface java.util.List<E>
public int lastIndexOf(@Nullable java.lang.Object object)
lastIndexOf
in interface java.util.List<E>
public boolean contains(@Nullable java.lang.Object object)
contains
in interface java.util.Collection<E>
contains
in interface java.util.List<E>
contains
in class ImmutableCollection<E>
public ImmutableList<E> subList(int fromIndex, int toIndex)
fromIndex
, inclusive, and toIndex
, exclusive. (If fromIndex
and toIndex
are equal, the empty immutable list is
returned.)subList
in interface java.util.List<E>
ImmutableList<E> subListUnchecked(int fromIndex, int toIndex)
subList(int, int)
when toIndex - fromIndex > 1
, after index validation has already been
performed.@Deprecated public final boolean addAll(int index, java.util.Collection<? extends E> newElements)
addAll
in interface java.util.List<E>
java.lang.UnsupportedOperationException
- always@Deprecated public final E set(int index, E element)
set
in interface java.util.List<E>
java.lang.UnsupportedOperationException
- always@Deprecated public final void add(int index, E element)
add
in interface java.util.List<E>
java.lang.UnsupportedOperationException
- always@Deprecated public final E remove(int index)
remove
in interface java.util.List<E>
java.lang.UnsupportedOperationException
- alwayspublic final ImmutableList<E> asList()
asList
in class ImmutableCollection<E>
int copyIntoArray(java.lang.Object[] dst, int offset)
ImmutableCollection
offset + size()
.copyIntoArray
in class ImmutableCollection<E>
public ImmutableList<E> reverse()
ImmutableList.of(1, 2, 3).reverse()
is equivalent to ImmutableList.of(3, 2, 1)
.public boolean equals(@Nullable java.lang.Object obj)
public int hashCode()
private void readObject(java.io.ObjectInputStream stream) throws java.io.InvalidObjectException
java.io.InvalidObjectException
java.lang.Object writeReplace()
writeReplace
in class ImmutableCollection<E>
public static <E> ImmutableList.Builder<E> builder()
ImmutableList.Builder
constructor.