Метод iter
Метод iter возвращает итератор, который позволяет перебрать все пары ключ-значение в хеш-таблице HashMap. Параметров метод не принимает. Итератор возвращает кортежи вида (&K, &V), где первый элемент - это ссылка на ключ, а второй - ссылка на значение.
Синтаксис
hashmap.iter()
Пример
Давайте создадим хеш-таблицу и переберём все её элементы с помощью метода iter:
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);
for (key, value) in map.iter() {
println!("{}: {}", key, value);
}
}
Результат выполнения кода:
a: 1
b: 2
c: 3
Пример
Давайте соберём все ключи хеш-таблицы в вектор с помощью метода iter:
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);
let keys: Vec<&str> = map.iter().map(|(k, _)| *k).collect();
println!("{:?}", keys);
}
Результат выполнения кода:
["a", "b", "c"]
Пример
Давайте найдём сумму всех значений хеш-таблицы с помощью метода iter:
use std::collections::HashMap;
fn main()
{
let mut map = HashMap::new();
map.insert("a", 1);
map.insert("b", 2);
map.insert("c", 3);
let sum: i32 = map.iter().map(|(_, v)| *v).sum();
println!("{}", sum);
}
Результат выполнения кода:
6