HashMap[K: Любой #share, V: Любой #share, H: HashFunction[K] val]
Неизменяемое отображение, основанное на сжатой хеш-массированной префиксной древовидной структуре, описанной в статье «Оптимизация хеш-массированных трие для быстрых и компактных неизменяемых коллекций JVM» Майкла Дж. Штейндорфера и Юргена Дж. Виндзю.
Использование
use "collections/persistent"
actor Main
new create(env: Env) =>
try
let m1 = Map[String, U32] // {}
// Update returns a new map with the provided key set
// to the provided value. The old map is unchanged.
let m2 = m1("a") = 5 // {a: 5}
let m3 = m2("b") = 10 // {a: 5, b: 10}
let m4 = m3.remove("a")? // {b: 10}
// You can create a new map from key value pairs.
let m5 = Map[String, U32].concat([("a", 2); ("b", 3)].values()) // {a: 2, b: 3}
end
class val HashMap[K: Any #share, V: Any #share, H: HashFunction[K] val]
Конструкторы
create
new val create() : HashMap[K, V, H] val^
Возвращает
- HashMap[K, V, H] val^
Общедоступные функции
apply
Попытка получить значение, соответствующее ключу k.
fun val apply( k: K) : val->V ?
Параметры
- k: K
Возвращает
- val->V ?
размер
Возвращает количество пар «ключ-значение» в отображении.
fun val size() : USize val
Возвращает
- USize val
update
Обновление значения, связанного с указанным ключом.
fun val update( key: K, value: val->V) : HashMap[K, V, H] val
Параметры
- key: K
- value: val->V
Возвращает
- HashMap[K, V, H] val
remove
Попытка удалить указанный ключ из отображения.
fun val remove( k: K) : HashMap[K, V, H] val ?
Параметры
- k: K
Возвращает
- HashMap[K, V, H] val ?
get_or_else
Получение значения, связанного с указанным ключом, если оно существует. В противном случае возвращается альтернативное значение.
fun val get_or_else( k: K, alt: val->V) : val->V
Параметры
- k: K
- alt: val->V
Возвращает
- val->V
содержит
Проверка, содержит ли узел указанный ключ.
fun val contains( k: K) : Bool val
Параметры
- k: K
Возвращает
- Bool val
concat
Добавление пар «ключ-значение» из заданного итератора в отображение.
fun val concat( iter: Iterator[(val->K , val->V)] ref) : HashMap[K, V, H] val
Параметры
- iter: Iterator[(val->K , val->V)] ref
Возвращает
- HashMap[K, V, H] val
add
Возвращает это отображение с заданным сопоставлением «ключ-значение».
fun val add( key: K, value: val->V) : HashMap[K, V, H] val
Параметры
- key: K
- value: val->V
Возвращает
- HashMap[K, V, H] val
sub
Возвращает это отображение без указанного ключа.
fun val sub( key: K) : HashMap[K, V, H] val
Параметры
- key: K
Возвращает
- HashMap[K, V, H] val
ключи
fun val keys() : MapKeys[K, V, H] ref
Возвращает
- MapKeys[K, V, H] ref
значения
fun val values() : MapValues[K, V, H] ref
Возвращает
- MapValues[K, V, H] ref
пары
fun val pairs() : MapPairs[K, V, H] ref
Возвращает
- MapPairs[K, V, H] ref
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/collections-persistent-HashMap