1
// Java Iterator interface reference:
2
// https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html
3

4
class PeekingIterator implements Iterator<Integer> {
5
Queue<Integer> q;
6

7
public PeekingIterator(Iterator<Integer> iterator) {
8
// initialize any member here.
9
q = new LinkedList<>();
10
while (iterator.hasNext()) q.add(iterator.next());
11
}
12

13
// Returns the next element in the iteration without advancing the iterator.
14
public Integer peek() {
15
return q.peek();
16
}
17

18
// hasNext() and next() should behave the same as in the Iterator interface.
19
// Override them if needed.
20
@Override
21
public Integer next() {
22
return q.remove();
23
}
24

25
@Override
26
public boolean hasNext() {
27
return q.size() != 0;
28
}
29
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0