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

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.

主站蜘蛛池模板: 柯坪县| 阳曲县| 汕尾市| 大英县| 竹北市| 石嘴山市| 鄂伦春自治旗| 罗山县| 桂平市| 许昌县| 铁力市| 建瓯市| 兴海县| 九江市| 张家口市| 肥乡县| 靖安县| 桐乡市| 屏南县| 昌吉市| 筠连县| 林口县| 礼泉县| 广灵县| 临江市| 阿瓦提县| 新巴尔虎左旗| 永福县| 军事| 陈巴尔虎旗| 南平市| 玛曲县| 罗江县| 正镶白旗| 资源县| 保靖县| 鄢陵县| 江永县| 清原| 台北市| 曲水县|