Google Interview Question

Given an iterator of Integers, create an iterator that will work correctly only iterating even integers. Ex given an iterator that iterates 1, 2, 3, 4, 5, the iterator should iterate 2, 4

Interview Answer

Anonymous

Feb 11, 2015

class EvenIterator { private final Iterator iterator; private Integer nextItem; public EvenIterator(Iterator iterator) { this.iterator = iterator; setNextItem(); } public int next() { int next = nextItem; setNextItem(); return next; } public boolean hasNext() { return nextItem != null; } private void setNextItem() { while (iterator.hasNext()) { nextItem = iterator.next(); if ((nextItem & 1) == 0) { return; } } nextItem = null; } }

3