public final class MergedIterator<T extends java.lang.Comparable<T>>
extends java.lang.Object
implements java.util.Iterator<T>
If built with removeDuplicates
set to true and an element
appears in multiple iterators then it is deduplicated, that is this iterator
returns the sorted union of elements.
If built with removeDuplicates
set to false then all elements
in all iterators are returned.
Caveats:
Modifier and Type | Class and Description |
---|---|
private static class |
MergedIterator.SubIterator<I extends java.lang.Comparable<I>> |
private static class |
MergedIterator.TermMergeQueue<C extends java.lang.Comparable<C>> |
Modifier and Type | Field and Description |
---|---|
private T |
current |
private int |
numTop |
private MergedIterator.TermMergeQueue<T> |
queue |
private boolean |
removeDuplicates |
private MergedIterator.SubIterator<T>[] |
top |
Constructor and Description |
---|
MergedIterator(boolean removeDuplicates,
java.util.Iterator<T>... iterators) |
MergedIterator(java.util.Iterator<T>... iterators) |
Modifier and Type | Method and Description |
---|---|
boolean |
hasNext() |
T |
next() |
private void |
pullTop() |
private void |
pushTop() |
void |
remove() |
private final MergedIterator.TermMergeQueue<T extends java.lang.Comparable<T>> queue
private final MergedIterator.SubIterator<T extends java.lang.Comparable<T>>[] top
private final boolean removeDuplicates
private int numTop
public MergedIterator(java.util.Iterator<T>... iterators)
public MergedIterator(boolean removeDuplicates, java.util.Iterator<T>... iterators)
public boolean hasNext()
public T next()
public void remove()
private void pullTop()
private void pushTop()