com.softicar.platform.common.container.iterator.MergeIterator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of platform-common Show documentation
Show all versions of platform-common Show documentation
The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.
package com.softicar.platform.common.container.iterator;
import com.softicar.platform.common.core.annotations.Nullable;
import java.util.Iterator;
/**
* Merges two sequences of {@link Iterator} or {@link Iterable}.
*
* @author Oliver Richers
*/
public class MergeIterator<@Nullable T> extends AbstractIteratorAdapter {
private Iterator iterator1;
private Iterator iterator2;
public MergeIterator(Iterable iterable1, Iterable iterable2) {
this(iterable1.iterator(), iterable2.iterator());
}
public MergeIterator(Iterator iterator1, Iterator iterator2) {
this.iterator1 = iterator1;
this.iterator2 = iterator2;
}
@Override
protected T fetchNext() {
if (iterator1 != null) {
if (iterator1.hasNext()) {
return iterator1.next();
} else {
iterator1 = null;
}
}
if (iterator2 != null) {
if (iterator2.hasNext()) {
return iterator2.next();
} else {
iterator2 = null;
}
}
return setFinished();
}
}