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

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.

主站蜘蛛池模板: 白朗县| 惠来县| 鹿泉市| 敖汉旗| 长岭县| 长治县| 青神县| 三门县| 通道| 即墨市| 永年县| 浠水县| 井研县| 七台河市| 太原市| 五原县| 中山市| 读书| 临颍县| 米易县| 马边| 桦南县| 沅江市| 禄丰县| 道真| 牙克石市| 乌兰浩特市| 赫章县| 阳原县| 辽源市| 许昌县| 海安县| 南澳县| 九寨沟县| 金阳县| 筠连县| 阳东县| 锡林郭勒盟| 慈溪市| 满洲里市| 桃园县|