官术网_书友最值得收藏!

Hashmaps

Rust also provides us with maps, which can be used to store key-value data. They come from the std::collections module and are named HashMap. They are created with the HashMap::new constructor function:

// hashmaps.rs

use std::collections::HashMap;

fn main() {
let mut fruits = HashMap::new();
fruits.insert("apple", 3);
fruits.insert("mango", 6);
fruits.insert("orange", 2);
fruits.insert("avocado", 7);
for (k, v) in &fruits {
println!("I got {} {}", v, k);
}

fruits.remove("orange");
let old_avocado = fruits["avocado"];
fruits.insert("avocado", old_avocado + 5);
println!("\nI now have {} avocados", fruits["avocado"]);
}

In the preceding code, we created a new HashMap called fruits. We then insert some fruits into our fruits map, along with their count, using the insert method. Following that, we iterate over the key value pairs using for loop, where in we take a reference to our fruit map by &fruits, because we only want read access to the key and value. By default, the value will be consumed by the for loop. The for loop in this case returns a two field tuple ((k ,v)). There are also seperate methods keys() and values() available to iterate over just keys and values, respectively. The hashing algorithm used for hashing the keys of the HashMap type is based on the Robin hood open addressing scheme, but can be replaced with a custom hasher depending on the use case and performance. That's about it.

Next, let's look at slices.

主站蜘蛛池模板: 内乡县| 新乐市| 湄潭县| 比如县| 九龙城区| 沂水县| 政和县| 东丰县| 交城县| 布拖县| 吉安县| 班玛县| 新干县| 盐亭县| 章丘市| 策勒县| 昌乐县| 五常市| 天峨县| 会宁县| 衡阳市| 延安市| 双辽市| 临泉县| 阳朔县| 日喀则市| 叙永县| 鲁甸县| 彭水| 南开区| 灌云县| 缙云县| 新化县| 秦安县| 咸阳市| 定日县| 永济市| 财经| 道真| 遂宁市| 新泰市|