Package org.apache.directory.api.util
Class SequencedHashMap.OrderedIterator
- java.lang.Object
-
- org.apache.directory.api.util.SequencedHashMap.OrderedIterator
-
- All Implemented Interfaces:
Iterator
- Enclosing class:
- SequencedHashMap
private final class SequencedHashMap.OrderedIterator extends Object implements Iterator
-
-
Field Summary
Fields Modifier and Type Field Description private longexpectedModCountHolds the expected modification count.private SequencedHashMap.MapEntryposHolds the "current" position in the iterator.private intreturnTypeHolds the type that should be returned from the iterator.
-
Constructor Summary
Constructors Constructor Description OrderedIterator(int returnType)Construct an iterator over the sequenced elements in the order in which they were added.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanhasNext()Returns whether there is any additional elements in the iterator to be returned.Objectnext()Returns the next element from the iterator.voidremove()Removes the last element returned from thenext()method from the sequenced map.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
Field Detail
-
returnType
private int returnType
Holds the type that should be returned from the iterator. The value should be either KEY, VALUE, or ENTRY. To save a tiny bit of memory, this field is also used as a marker for when remove has been called on the current object to prevent a second remove on the same element. Essentially, if this value is negative (i.e. the bit specified by REMOVED_MASK is set), the current position has been removed. If positive, remove can still be called.
-
pos
private SequencedHashMap.MapEntry pos
Holds the "current" position in the iterator. When pos.next is the sentinel, we've reached the end of the list.
-
expectedModCount
private long expectedModCount
Holds the expected modification count. If the actual modification count of the map differs from this value, then a concurrent modification has occurred.
-
-
Constructor Detail
-
OrderedIterator
OrderedIterator(int returnType)
Construct an iterator over the sequenced elements in the order in which they were added. Thenext()method returns the type specified byreturnTypewhich must be either KEY, VALUE, or ENTRY.- Parameters:
returnType- The type (KEY,VALUE, ENTRY)
-
-
Method Detail
-
hasNext
public boolean hasNext()
Returns whether there is any additional elements in the iterator to be returned.
-
next
public Object next()
Returns the next element from the iterator.- Specified by:
nextin interfaceIterator- Returns:
- the next element from the iterator.
- Throws:
NoSuchElementException- if there are no more elements in the iterator.ConcurrentModificationException- if a modification occurs in the underlying map.
-
remove
public void remove()
Removes the last element returned from thenext()method from the sequenced map.- Specified by:
removein interfaceIterator- Throws:
IllegalStateException- if there isn't a "last element" to be removed. That is, ifnext()has never been called, or ifremove()was already called on the element.ConcurrentModificationException- if a modification occurs in the underlying map.
-
-