Класс BTreeMap
Класс BTreeMap из модуля std::collections представляет
собой коллекцию пар ключ-значение, упорядоченных по ключу.
В отличие от HashMap, элементы в BTreeMap всегда
хранятся в отсортированном порядке, что позволяет эффективно
выполнять операции поиска по диапазону, находить минимальный
и максимальный элементы. Ключи должны реализовывать трейты
Ord и PartialOrd. Параметрами обобщения являются
тип ключа K и тип значения V.
Синтаксис
use std::collections::BTreeMap;
let mut map: BTreeMap<K, V> = BTreeMap::new();
Пример
Давайте создадим BTreeMap и добавим в него несколько
пар ключ-значение с помощью метода insert:
use std::collections::BTreeMap;
fn main()
{
let mut map = BTreeMap::new();
map.insert("b", 2);
map.insert("a", 1);
map.insert("c", 3);
println!("{:?}", map);
}
Результат выполнения кода:
{"a": 1, "b": 2, "c": 3}
Обратите внимание, что элементы автоматически упорядочены по ключу, несмотря на то, что вставка происходила в другом порядке.
Пример
Давайте получим значение по ключу с помощью метода get:
use std::collections::BTreeMap;
fn main()
{
let mut map = BTreeMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);
let res = map.get("b");
println!("{:?}", res);
}
Результат выполнения кода:
Some(2)
Пример
Давайте получим первый и последний элементы карты
с помощью методов first_key_value и last_key_value:
use std::collections::BTreeMap;
fn main()
{
let mut map = BTreeMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);
println!("{:?}", map.first_key_value());
println!("{:?}", map.last_key_value());
}
Результат выполнения кода:
Some(("a", 1))
Some(("c", 3))