Scala имеет богатый набор коллекционных библиотек. Коллекции являются контейнерами вещей. Эти контейнеры могут быть последовательными, линейными наборами элементов, такими как List, Tuple, Option, Map и т. Д. Коллекции могут иметь произвольное количество элементов или быть ограничены нулем или одним элементом (например, Option).
Коллекции могут быть строгими или ленивыми . Ленивые коллекции имеют элементы, которые могут не потреблять память до тех пор, пока к ним не будет получен доступ, например, диапазоны . Кроме того, коллекции могут быть изменяемыми (содержимое ссылки может изменяться) или неизменными (вещь, на которую ссылается ссылка, никогда не изменяется). Обратите внимание, что неизменяемые коллекции могут содержать изменяемые элементы.
Для некоторых задач изменяемые коллекции работают лучше, а для других неизменные коллекции работают лучше. В случае сомнений лучше начать с неизменяемой коллекции и изменить ее позже, если вам нужны изменяемые.
Эта глава проливает свет на наиболее часто используемые типы коллекций и наиболее часто используемые операции над этими коллекциями.
Scala’s List [T] — это связанный список типа T.
Набор представляет собой набор попарно различных элементов одного типа.
Карта — это набор пар ключ / значение. Любое значение может быть получено на основе его ключа.
В отличие от массива или списка, кортеж может содержать объекты разных типов.
Опция [T] предоставляет контейнер для нуля или одного элемента данного типа.
Итератор — это не коллекция, а способ доступа к элементам коллекции один за другим.