Interface ListIndex<T>
-
- Type Parameters:
T- the type of elements in this list
- All Superinterfaces:
Iterable<T>,StorageIndex
- All Known Implementing Classes:
ListIndexProxy,ProofListIndexProxy
public interface ListIndex<T> extends StorageIndex, Iterable<T>
A list index proxy is a contiguous list of elements.The "destructive" methods of the list, i.e., those that change its contents, are specified to throw
UnsupportedOperationExceptionif this list has been created with a read-only database view.When the corresponding view goes out of scope, this list is destroyed. Subsequent use of the closed list is prohibited and will result in
IllegalStateException.This interface prohibits null elements. All method arguments are non-null by default.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidadd(T e)Adds a new element to the end of the list.voidaddAll(Collection<? extends T> elements)Adds all elements from the specified collection to this list.voidclear()Clears the list.Tget(long index)Returns the element at the given index.TgetLast()Returns the last element of the list.booleanisEmpty()Returns true if the list is empty, false — otherwise.Iterator<T>iterator()Returns an iterator over the elements of the list.TremoveLast()Removes the last element of the list and returns it.voidset(long index, T e)Replaces the element at the given index of the list with the specified element.longsize()Returns the number of elements in the list.Stream<T>stream()Returns a stream of elements in this list.voidtruncate(long newSize)Truncates the list, reducing its size tonewSize.-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface com.exonum.binding.core.storage.indices.StorageIndex
getAddress, getName
-
-
-
-
Method Detail
-
add
void add(T e)
Adds a new element to the end of the list.- Parameters:
e- an element to append to the list- Throws:
IllegalStateException- if this list is not validUnsupportedOperationException- if this list is read-only
-
addAll
void addAll(Collection<? extends T> elements)
Adds all elements from the specified collection to this list.If the collection contains an invalid element, this list is not modified.
- Parameters:
elements- elements to add to this list- Throws:
NullPointerException- if the source collection is null or it contains null elements. In this case this list is not modified.IllegalStateException- if this list is not validUnsupportedOperationException- if this list is read-only
-
set
void set(long index, T e)Replaces the element at the given index of the list with the specified element.- Parameters:
index- an index of the element to replacee- an element to add- Throws:
IndexOutOfBoundsException- if the index is invalidIllegalStateException- if this list is not validUnsupportedOperationException- if this list is read-only
-
get
T get(long index)
Returns the element at the given index.- Parameters:
index- an index of the element to return- Returns:
- an element at the given index
- Throws:
IndexOutOfBoundsException- if index is invalidIllegalStateException- if this list is not valid
-
getLast
T getLast()
Returns the last element of the list.- Returns:
- the last element of the list
- Throws:
NoSuchElementException- if the list is emptyIllegalStateException- if this list is not valid
-
removeLast
T removeLast()
Removes the last element of the list and returns it.- Returns:
- the last element of the list.
- Throws:
NoSuchElementException- if the list is emptyIllegalStateException- if this list is not validUnsupportedOperationException- if this list is read-only
-
truncate
void truncate(long newSize)
Truncates the list, reducing its size tonewSize.If
newSize < size(), keeps the firstnewSizeelements, removing the rest. IfnewSize >= size(), has no effect.- Parameters:
newSize- the maximum number of elements to keep- Throws:
IllegalArgumentException- if the new size is negativeIllegalStateException- if this list is not validUnsupportedOperationException- if this list is read-only
-
clear
void clear()
Clears the list.- Throws:
IllegalStateException- if this list is not validUnsupportedOperationException- if this list is read-only
-
isEmpty
boolean isEmpty()
Returns true if the list is empty, false — otherwise.- Throws:
IllegalStateException- if this list is not valid
-
size
long size()
Returns the number of elements in the list.- Throws:
IllegalStateException- if this list is not valid
-
iterator
Iterator<T> iterator()
Returns an iterator over the elements of the list.- Specified by:
iteratorin interfaceIterable<T>- Throws:
IllegalStateException- if this list is not valid
-
stream
Stream<T> stream()
Returns a stream of elements in this list. The returned stream is fail-fast and late-binding. The stream can be used as long as the source list is valid.- Throws:
IllegalStateException- if this list is not valid
-
-