Spec-Zone.ru › Pony

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API