public abstract static class LongIterators.AbstractIndexBasedListIterator extends LongIterators.AbstractIndexBasedIterator implements LongListIterator
This class is only appropriate for sequences that are at most Integer.MAX_VALUE long.
If your backing data store can be bigger then this, consider the equivalently named class in
the type specific BigListSpliterators class.
As the abstract methods in this class are used in inner loops, it is generally a
good idea to override the class as final as to encourage the JVM to inline
them (or alternatively, override the abstract methods as final).
lastReturned, minPos, pos| Modifier | Constructor and Description |
|---|---|
protected |
AbstractIndexBasedListIterator(int minPos,
int initialPos) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
add(int location,
long k)
Add the given item at the given index.
|
void |
add(long k)
Inserts the specified element into the list (optional operation).
|
int |
back(int n)
Moves back for the given number of elements.
|
boolean |
hasPrevious() |
int |
nextIndex() |
int |
previousIndex() |
long |
previousLong()
Returns the previous element as a primitive type.
|
protected abstract void |
set(int location,
long k)
Sets the given item at the given index.
|
void |
set(long k)
Replaces the last element returned by
LongListIterator.next() or
LongListIterator.previous() with the specified element (optional operation). |
forEachRemaining, get, getMaxPos, hasNext, nextLong, remove, remove, skipforEachRemainingclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitadd, next, previous, remove, setskipprotected AbstractIndexBasedListIterator(int minPos,
int initialPos)
protected abstract void add(int location,
long k)
This method should also do what is needed to track the change to the LongIterators.AbstractIndexBasedIterator.getMaxPos().
Usually this is accomplished by having this method call the parent Collection's appropriate add
method, and having LongIterators.AbstractIndexBasedIterator.getMaxPos() track the parent collection's size.
Do not modify LongIterators.AbstractIndexBasedIterator.pos in this method; the default #add() method takes care of this.
See LongIterators.AbstractIndexBasedIterator.pos and LongIterators.AbstractIndexBasedIterator.get(int) for discussion on what the location means.
protected abstract void set(int location,
long k)
See LongIterators.AbstractIndexBasedIterator.pos and LongIterators.AbstractIndexBasedIterator.get(int) for discussion on what the location means.
public boolean hasPrevious()
hasPrevious in interface it.unimi.dsi.fastutil.BidirectionalIterator<java.lang.Long>hasPrevious in interface java.util.ListIterator<java.lang.Long>public long previousLong()
LongBidirectionalIteratorpreviousLong in interface LongBidirectionalIteratorListIterator.previous()public int nextIndex()
nextIndex in interface java.util.ListIterator<java.lang.Long>public int previousIndex()
previousIndex in interface java.util.ListIterator<java.lang.Long>public void add(long k)
LongListIteratorThis default implementation just throws an UnsupportedOperationException.
add in interface LongListIteratork - the element to insert.ListIterator.add(Object)public void set(long k)
LongListIteratorLongListIterator.next() or
LongListIterator.previous() with the specified element (optional operation).set in interface LongListIteratork - the element used to replace the last element returned.
This default implementation just throws an UnsupportedOperationException.
ListIterator.set(Object)public int back(int n)
LongBidirectionalIteratorThe effect of this call is exactly the same as that of
calling LongBidirectionalIterator.previous() for n times (possibly stopping
if BidirectionalIterator.hasPrevious() becomes false).
back in interface LongBidirectionalIteratorback in interface it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator<java.lang.Long>n - the number of elements to skip back.LongBidirectionalIterator.previous()