public class MergeIterator<E> extends java.lang.Object implements CloneableIterator<E>
Modifier and Type | Field and Description |
---|---|
private CloneableIterator<E> |
a |
private CloneableIterator<E> |
b |
private java.util.Comparator<E> |
comp |
private java.lang.reflect.Method |
merger |
private E |
na |
private E |
nb |
static java.lang.reflect.Method |
simpleMerge |
private boolean |
up |
Constructor and Description |
---|
MergeIterator(CloneableIterator<E> a,
CloneableIterator<E> b,
java.util.Comparator<E> c,
java.lang.reflect.Method m,
boolean up) |
Modifier and Type | Method and Description |
---|---|
static <A> CloneableIterator<A> |
cascade(java.util.Collection<CloneableIterator<A>> iterators,
Order<A> c,
java.lang.reflect.Method merger,
boolean up) |
private static <A> CloneableIterator<A> |
cascade(java.util.Iterator<CloneableIterator<A>> iiterators,
Order<A> c,
java.lang.reflect.Method merger,
boolean up) |
MergeIterator<E> |
clone(java.lang.Object modifier)
clone the iterator using a modifier
the modifier can be i.e.
|
void |
close()
a CloneableIterator should be closed after usage to free resources
|
boolean |
hasNext() |
static java.lang.Object |
mergeEqualByReplace(java.lang.Object a,
java.lang.Object b) |
E |
next() |
private void |
nexta() |
private void |
nextb() |
void |
remove() |
private final java.util.Comparator<E> comp
private final CloneableIterator<E> a
private final CloneableIterator<E> b
private E na
private E nb
private final java.lang.reflect.Method merger
private final boolean up
public static final java.lang.reflect.Method simpleMerge
public MergeIterator(CloneableIterator<E> a, CloneableIterator<E> b, java.util.Comparator<E> c, java.lang.reflect.Method m, boolean up)
public void close()
CloneableIterator
close
in interface CloneableIterator<E>
public MergeIterator<E> clone(java.lang.Object modifier)
CloneableIterator
clone
in interface CloneableIterator<E>
private void nexta()
private void nextb()
public boolean hasNext()
hasNext
in interface java.util.Iterator<E>
public void remove()
remove
in interface java.util.Iterator<E>
public static <A> CloneableIterator<A> cascade(java.util.Collection<CloneableIterator<A>> iterators, Order<A> c, java.lang.reflect.Method merger, boolean up)
private static <A> CloneableIterator<A> cascade(java.util.Iterator<CloneableIterator<A>> iiterators, Order<A> c, java.lang.reflect.Method merger, boolean up)
public static java.lang.Object mergeEqualByReplace(java.lang.Object a, java.lang.Object b)