Кто-нибудь знает источник характеристик производительности по методу «содержит» в разных вариантах списков Scala? Документы scala language охватывают основные операции, такие как head, tail, append и т. Д., Но, похоже, не отражают производительность «contains». (Или, по крайней мере, я не нашел ничего такого.)Производительность Scala List
FWIW, мне нужна самая быстрая структура, которая эффективно скажет мне, существует ли элемент в его листинге. Это перечисление, после первоначальной компиляции, не будет проходить никаких дальнейших операций a/m/d.
Это для версии Scala 2.10.0
EDIT: в случае, если бы никакой разницы, это список текстовых сегментов (~ 16 до 48 символов.) И, чтобы уточнить, что документы сделали содержат одну небольшую таблицу, показывающую производительность поиска, но только для небольшого набора реализаций списка/карты.
Он должен был бы быть довольно сумасшедшим своего рода список для содержит не быть O (п). Если вы хотите, чтобы Fast содержал, используйте [Set] (http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.Set) – Cubic
Эта таблица находится по всей карте, когда она приходит к поиску. Конечно, большинство из них - хеш (за предыдущее редактирование), но там достаточно дисперсии, что я хотел бы убедиться: http://www.scala-lang.org/docu/files/collections-api/collections_40.html – mjk
Для большинства целей есть только один «аромат» списка в Scala, «List», который является классическим, функциональным (Lisp-like) cons-cell-based list. «Список» Scala - это конкретный тип, тогда как «Список» Java является абстрактным. То, что Java вызывает «List» Scala, вызывает «Seq», абстрактный тип для всех коллекций, которые поддерживают определенный порядок их записей, идентичных или противоположных порядку добавления записей. Как указывали другие, вы хотите «Установить», чья точная цель - поддерживать быстрые тесты на наличие или отсутствие определенного значения. –