РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
685 of 1245 menu

Класс HashMap

Класс HashMap - это коллекция из стандартной библиотеки Rust, реализующая хеш-таблицу. Он хранит данные в виде пар «ключ-значение» и позволяет быстро находить, вставлять и удалять значения по ключу. Для использования HashMap необходимо подключить модуль std::collections::HashMap. Ключи должны реализовывать трейты Eq и Hash, а значения могут быть любого типа. При создании экземпляра можно указать начальную ёмкость с помощью метода with_capacity или создать пустую таблицу методом new.

Синтаксис

use std::collections::HashMap; let mut map: HashMap<K, V> = HashMap::new(); let mut map: HashMap<K, V> = HashMap::with_capacity(capacity);

Пример

Давайте создадим пустую хеш-таблицу, вставим в неё несколько пар «ключ-значение» и выведем содержимое на экран:

use std::collections::HashMap; fn main() { let mut map: HashMap<&str, i32> = HashMap::new(); map.insert("one", 1); map.insert("two", 2); map.insert("three", 3); println!("{:?}", map); }

Результат выполнения кода:

{"one": 1, "two": 2, "three": 3}

Пример

Давайте получим значение по ключу с помощью метода get:

use std::collections::HashMap; fn main() { let mut map: HashMap<&str, i32> = HashMap::new(); map.insert("one", 1); map.insert("two", 2); let res = map.get("one"); println!("{:?}", res); }

Результат выполнения кода:

Some(1)

Пример

Давайте проверим наличие ключа в таблице с помощью метода contains_key и удалим пару методом remove:

use std::collections::HashMap; fn main() { let mut map: HashMap<&str, i32> = HashMap::new(); map.insert("one", 1); map.insert("two", 2); println!("{}", map.contains_key("one")); map.remove("one"); println!("{}", map.contains_key("one")); println!("{:?}", map); }

Результат выполнения кода:

true false {"two": 2}

Пример

Давайте переберём все пары «ключ-значение» с помощью метода iter:

use std::collections::HashMap; fn main() { let mut map: HashMap<&str, i32> = HashMap::new(); map.insert("one", 1); map.insert("two", 2); map.insert("three", 3); for (key, value) in map.iter() { println!("{}: {}", key, value); } }

Результат выполнения кода:

one: 1 two: 2 three: 3

Смотрите также

  • метод new,
    который создаёт пустую хеш-таблицу
  • метод insert,
    который вставляет пару «ключ-значение» в таблицу
  • метод get,
    который возвращает значение по ключу
  • метод iter,
    который возвращает итератор по парам «ключ-значение»
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить