It returns an java.util.Iterator. It is mainly used to be able to use the implementing type in the enhanced for loop
List- list = ...
for (Item i:list) {
// use i
}
Under the hood the compiler calls the list.iterator() and iterates it giving you the i inside the for loop.