This looks like an unnecessary duplication of Iterable/Iterator. Besides, Guava has a conversion operator.