Класс Entry
Класс Entry представляет собой представление одной записи
в HashMap. Он позволяет работать с значением по ключу
без повторного поиска в хеш-таблице. Класс Entry обычно
используется совместно с методом entry, который принимает
ключ и возвращает значение типа Entry для этого ключа.
Через Entry можно вставить значение, если ключа ещё нет,
изменить существующее значение или прочитать его.
Синтаксис
HashMap::entry(&mut self, key: K) -> Entry<K, V>
Пример
Давайте создадим HashMap и получим запись
для ключа "a" с помощью метода entry:
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
let entry = map.entry("a");
println!("{:?}", entry);
}
Результат выполнения кода:
Entry(Vacant)
Пример
Давайте вставим значение через Entry с помощью метода
or_insert, если ключа ещё нет:
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
map.entry("a").or_insert(1);
println!("{:?}", map);
}
Результат выполнения кода:
{"a": 1}
Пример
Давайте изменим существующее значение через Entry
с помощью метода and_modify:
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
map.insert("a", 1);
map.entry("a").and_modify(|v| *v += 10);
println!("{:?}", map);
}
Результат выполнения кода:
{"a": 11}
Смотрите также
-
метод
entry,
который возвращает запись Entry для указанного ключа -
метод
or_insert,
который вставляет значение, если ключа ещё нет -
метод
and_modify,
который изменяет существующее значение записи -
класс
HashMap,
который представляет собой хеш-таблицу