Какова связь между Iterable и Iterator?

В чем разница между Iteratorи Iterableв scala?

Я думал, что Iterableпредставляет набор, который я могу перебирать, а Iterator— это «указатель» на один из элементов в перебираемом наборе.

Однако Iteratorимеет такие функции, как forEach, map, foldLeft. Его можно преобразовать в Iterableчерез toIterable. И, например, scala.io.Source.getLinesвозвращает Iterator, а не Iterable.

Но я не могу сделать groupByна Iteratorи могу сделать это на Iterable.

Итак, какова связь между этими двумя, Iteratorи Iterable?

48
задан svick 5 July 2012 в 08:40
поделиться