Каковы различия между LazyList и List в Scala? - PullRequest
1 голос
/ 07 апреля 2020

В чем различия между следующими типами коллекций в типах Scala: List и LazyList?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2020

Вопрос

В чем различия между LazyList и List?

можно перефразировать как вопрос

В чем различия между Stream и List?

, поскольку Scala 2.13 примечания к выпуску

immutable.LazyList заменяет immutable.Stream. Stream имел другое поведение лени и теперь считается устаревшим. ( # 7558 , # 7000 )

, а ответ на перефразированный вопрос дает в чем разница между Scala Stream против Scala Список против Scala Последовательность .

Оценки производительности лучше всего решать с помощью измерений в пределах конкретного сценария ios.

2 голосов
/ 07 апреля 2020

LazyList - это новый тип, введенный в Scala Стандартная библиотека 2.13.1 .

  • Тип является неизменяемым и помещается в пакет scala.collection.immutable. Основное различие между общим типом List заключается в том, что элементы LazyList вычисляются лениво, поэтому вычисляются только те элементы, которые запрашиваются. Таким образом, отложенный список может иметь бесконечное количество элементов.
  • По производительности два типа (LazyList и List) сопоставимы.
  • A LazyList создается с оператором, имеющим вид, аналогичный тому, который указан c для типа List (::), #::.
  • Будучи ленивым, LazyList не может произвести StackOverFlowError в рекурсивном l oop, как мог бы сделать старый List.
...