1234567891011121314151617181920212223242526272829303132 |
- class PeekingIterator implements Iterator<Integer> {
- private Iterator<Integer> iter;
- private Integer peek;
- public PeekingIterator(Iterator<Integer> iterator) {
-
- this.iter = iterator;
- }
-
- public Integer peek() {
- if (this.peek == null) this.peek = this.iter.next();
- return this.peek;
- }
-
-
- @Override
- public Integer next() {
- if (this.peek == null) return this.iter.next();
- Integer next = this.peek;
- this.peek = null;
- return next;
- }
- @Override
- public boolean hasNext() {
- return peek != null || this.iter.hasNext();
- }
- }
|