Важные темы Rust
Rust HashMap
Store values under keys and look them up fast: insert, get, entry and counting.
Что вы узнаете
- insert and get
- entry().or_insert()
- Sorting the keys
stock
"apple"5"pear"5"plum"1Values found by key
A HashMap<K, V> stores values under keys, so you can find a value quickly by its key. It is Rust's version of a dictionary or associative array.
insert adds or replaces a value. entry(key).or_insert(0) returns the existing value or inserts a default, which makes counting easy. get returns an Option because the key may be missing. A HashMap has no fixed order, so the keys are sorted before printing.
Главное
- get returns an Option: the key may be missing.
entry(key).or_insert(0) is the counting pattern.- A HashMap has no fixed order.
Пример на Rust, который можно запустить
Rust
main.rs
use std::collections::HashMap;
fn main() {
let mut stock: HashMap<String, u32> = HashMap::new();
stock.insert(String::from("apple"), 3);
stock.insert(String::from("pear"), 5);
*stock.entry(String::from("apple")).or_insert(0) += 2;
stock.entry(String::from("plum")).or_insert(1);
println!("apples: {}", stock["apple"]);
println!("has kiwi: {}", stock.contains_key("kiwi"));
if let Some(count) = stock.get("pear") {
println!("pears: {count}");
}
let mut names: Vec<&String> = stock.keys().collect();
names.sort();
println!("{:?}", names);
}
apples: 5
has kiwi: false
pears: 5
["apple", "pear", "plum"]Практика
Откройте пример в онлайн-компиляторе, измените значение или добавьте строку и попробуйте предсказать вывод до запуска. Затем намеренно сломайте код и прочитайте сообщение компилятора.
Закончили этот урок?
Отметьте его как изученный, чтобы следить за прогрессом.
Ваш прогресс сохранён в этом браузере Войдите, чтобы он был доступен на всех устройствах.
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
- Частота символов Посчитайте, сколько раз встречается каждый символ. Легко
- Первый уникальный символ Найдите первый символ, который встречается только один раз. Легко