Różnica między Iteratorem a Listiteratorem?

Iterator ite = Set.iterator(); Iterator ite = List.iterator(); ListIterator listite = List.listIterator(); Możemy użyć Iteratordo przejścia a Setlub a Listlub a Map. Ale ListIteratormoże być używany tylko do przechodzenia przezList , nie może przechodzić przez Set. Czemu? Wiem, że główna różnica...