Pergunta de entrevista da empresa Google

Implement peek() and pop() from java iterator(). for example [1,2,3,4,5], peek() = 1, pop() = 1, peek() = 2, peek() = 2, pop() = 2

Resposta da entrevista

Sigiloso

2 de fev. de 2014

public class PeekIterator implements Iterator { private final Iterator iterator; private T nextitem; public PeekIterator(Iterator iterator) { this.iterator = iterator; } @Override public boolean hasNext() { if (nextitem != null) { return true; } if (iterator.hasNext()) { nextitem = iterator.next(); } return nextitem != null; } @Override public T next() { if (!hasNext()) { throw (new NoSuchElementException("Iterator has no elements left.")); } T toReturn = nextitem; nextitem = null; return toReturn; } public T peek() { if (!hasNext()) { throw (new NoSuchElementException("Iterator has no elements left.")); } return nextitem; } @Override public void remove() { throw new UnsupportedOperationException(); } }

4