В чем разница между Iterator
и Iterable
в scala?
Я думал, что Iterable
представляет набор, который я могу перебирать, а Iterator
— это «указатель» на один из элементов в перебираемом наборе.
Однако Iterator
имеет такие функции, как forEach
, map
, foldLeft
. Его можно преобразовать в Iterable
через toIterable
. И, например, scala.io.Source.getLines
возвращает Iterator
, а не Iterable
.
Но я не могу сделать groupBy
на Iterator
и могу сделать это на Iterable
.
Итак, какова связь между этими двумя, Iterator
и Iterable
?