diff --git a/problems/peeking-iterator.java b/problems/peeking-iterator.java new file mode 100644 index 0000000..98440f7 --- /dev/null +++ b/problems/peeking-iterator.java @@ -0,0 +1,32 @@ +class PeekingIterator implements Iterator { + private Iterator it; + + private Integer pVal; + private boolean pHasNext; + + public PeekingIterator(Iterator 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; + } +}