Метод range
Метод range возвращает итератор, который
обходит элементы BTreeMap в порядке
возрастания ключей, попадающих в заданный
диапазон. Параметром метод принимает диапазон
ключей, который можно задать с помощью
синтаксиса .. (исключая верхнюю границу),
..= (включая верхнюю границу),
.. (от начала), .. (до конца) или
комбинаций с Bound. Метод возвращает
итератор типа Range, который выдаёт
пары (&K, &V).
Синтаксис
map.range(range)
Пример
Давайте создадим BTreeMap с числовыми
ключами и получим все элементы, ключи которых
находятся в диапазоне от 2 до 4
(не включая 4):
use std::collections::BTreeMap;
fn main()
{
let mut map = BTreeMap::new();
map.insert(1, "a");
map.insert(2, "b");
map.insert(3, "c");
map.insert(4, "d");
map.insert(5, "e");
for (key, value) in map.range(2..4) {
println!("{}: {}", key, value);
}
}
Результат выполнения кода:
2: "b"
3: "c"
Пример
Давайте используем диапазон с включением
верхней границы 2..=4:
use std::collections::BTreeMap;
fn main()
{
let mut map = BTreeMap::new();
map.insert(1, "a");
map.insert(2, "b");
map.insert(3, "c");
map.insert(4, "d");
map.insert(5, "e");
for (key, value) in map.range(2..=4) {
println!("{}: {}", key, value);
}
}
Результат выполнения кода:
2: "b"
3: "c"
4: "d"
Пример
Давайте получим все элементы, начиная с ключа
3 и до конца коллекции:
use std::collections::BTreeMap;
fn main()
{
let mut map = BTreeMap::new();
map.insert(1, "a");
map.insert(2, "b");
map.insert(3, "c");
map.insert(4, "d");
map.insert(5, "e");
for (key, value) in map.range(3..) {
println!("{}: {}", key, value);
}
}
Результат выполнения кода:
3: "c"
4: "d"
5: "e"
Пример
Давайте получим все элементы, ключи которых
меньше 4:
use std::collections::BTreeMap;
fn main()
{
let mut map = BTreeMap::new();
map.insert(1, "a");
map.insert(2, "b");
map.insert(3, "c");
map.insert(4, "d");
map.insert(5, "e");
for (key, value) in map.range(..4) {
println!("{}: {}", key, value);
}
}
Результат выполнения кода:
1: "a"
2: "b"
3: "c"
Пример
Давайте создадим BTreeMap со строковыми
ключами и получим элементы в диапазоне от
"b" до "d":
use std::collections::BTreeMap;
fn main()
{
let mut map = BTreeMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);
map.insert("d", 4);
map.insert("e", 5);
for (key, value) in map.range("b".."d") {
println!("{}: {}", key, value);
}
}
Результат выполнения кода:
"b": 2
"c": 3
Смотрите также
-
класс
BTreeMap,
который представляет собой упорядоченную коллекцию ключ-значение -
метод
get,
который возвращает значение по указанному ключу -
метод
first_key_value,
который возвращает первый элемент коллекции -
метод
last_key_value,
который возвращает последний элемент коллекции