Какой тип Map возвращает метод toMap в Scala Iterable? - PullRequest
9 голосов
/ 22 сентября 2011

A Scala Iterable имеет метод toMap, который возвращает карту.Чем поддерживается эта карта?Каковы его рабочие характеристики?

Есть ли способ указать, что toMap должен возвращать HashMap?

1 Ответ

13 голосов
/ 22 сентября 2011

Возвращает immutable.HashMap, который на самом деле является неизменным хеш-массивом, отображаемым три . Эта структура данных по сути является гибридом между многоуровневой хеш-таблицей и деревом. В худшем случае сложность дерева с отображением хеш-массива составляет O(log n) для всех операций, хотя и с очень низким постоянным коэффициентом - попытки сопоставления с хеш-массивом очень незначительны и обычно имеют только несколько косвенных указаний. Вы можете прочитать больше о характеристиках производительности здесь или запустить пару микробензаров. Производительность приемлема в большинстве случаев.

toMap всегда возвращает три. Если вам нужна изменяемая хеш-таблица, сделайте следующее:

import collection._
mutable.HashMap() ++= xs

вместо:

xs.toMap
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...