problems: add peeking iterator
Signed-off-by: Matej Focko <mfocko@redhat.com>
This commit is contained in:
parent
9dc591147a
commit
a71684d500
1 changed files with 32 additions and 0 deletions
32
problems/peeking-iterator.java
Normal file
32
problems/peeking-iterator.java
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
class PeekingIterator implements Iterator<Integer> {
|
||||||
|
private Iterator<Integer> it;
|
||||||
|
|
||||||
|
private Integer pVal;
|
||||||
|
private boolean pHasNext;
|
||||||
|
|
||||||
|
public PeekingIterator(Iterator<Integer> iterator) {
|
||||||
|
it = iterator;
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer peek() {
|
||||||
|
return pVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer next() {
|
||||||
|
pHasNext = it.hasNext();
|
||||||
|
|
||||||
|
Integer oldValue = pVal;
|
||||||
|
if (pHasNext) {
|
||||||
|
pVal = it.next();
|
||||||
|
}
|
||||||
|
|
||||||
|
return oldValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNext() {
|
||||||
|
return pHasNext;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue