From a71684d500cf0eb2eb4ce7dc0396ae91a80e5ddc Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Fri, 5 Aug 2022 12:11:01 +0200 Subject: [PATCH] problems: add peeking iterator Signed-off-by: Matej Focko --- problems/peeking-iterator.java | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 problems/peeking-iterator.java 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; + } +}