如何将Vec <String>扩展为HashMap值?

马修·史蒂文森

我有一个HashMap<String, Vec<String>>我无法弄清楚如何通过增大来更新值Vec我认为以下方法会起作用:

fn add_employee(mut data: HashMap<String, Vec<String>>) -> HashMap<String, Vec<String>> {
    loop {
        println!("Please enter the name of the employee you would like to manage.");

        let mut employee = String::new();

        io::stdin().read_line(&mut employee).expect(
            "Failed to read line",
        );

        let employee = employee.trim();

        let mut department = String::new();

        println!("Please enter the name of the department you would like to add the employee to.");

        io::stdin().read_line(&mut department).expect(
            "Failed to read line",
        );

        let department = department.trim();

        data.entry(department.to_string())
            .extend(vec![employee.to_string()])
            .or_insert(vec![employee.to_string()]);
    }
}

但是它却给出了错误

error: no method named `extend` found for type `std::collections::hash_map::Entry<'_, std::string::String, std::vec::Vec<std::string::String>>` in the current scope
  --> src/main.rs:27:14
   |
27 |             .extend(vec![employee.to_string()])
   |              ^^^^^^
乙硫

使用此代码:

use std::collections::hash_map::Entry;

match data.entry(department.to_string()) {
    Entry::Occupied(mut entry)  => { entry.get_mut().push(employee.to_string()); },
    Entry::Vacant(entry)        => { entry.insert(vec!(employee.to_string())); },
}
  • 如果键存在,请获取该值的可变引用并添加新字符串,
  • 否则,创建一个新的向量并将其插入哈希图中。

所有这些信息都在文档中

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将Hashmap中的值转换为List <String>

如何将String数组解析为不同的原始数组

Java:如何将HashMap <String,Object>转换为数组

如何为扩展ArrayAdapter <HashMap <String,String >>的活动扩展AppCompatActivity?

如何将Spring Boot属性文件值获取为Map <String,String>

如何将String解析为默认值的int?

如何将<String,Array []>打印为扁平对?

如何将JSON值保留为String?

将Vec <String>传递为IntoIterator <&'a str>

如何将List <NameValuePair>转换为hashMap <String,String>?

如何将Hashmap <String,List <Items >>膨胀到Recyclerview

如何将值设置为:KeyValuePair <KeyValuePair <String,String>,int>

如何将String值转换(或转换为)Integer值?

如何将'nil'设置为[String:String]字典的值有效?

如何将“ keyof T”表示为String的子集?

如何将Vec(n,Bool())转换为UInt值

如何将Spark列的名称获取为String?

作为Groovy中String到String列表的Map,如何将String映射为String?

如何将selectItems设置为给定的String位置?

如何将LINQ查询分组为dictionary <string,string>

如何将大HashMap <String,Integer>拆分为较小的

如何将std :: string分解为std :: string

如何将CMake列表扩展为多个值?

如何将ArrayList <HashMap <String,String >>转换为StringArray?

将txt文档预处理为以String为键,以Integer ArrayList作为值的hashmap

如何将String与HashMap进行比较

如何将 String 或 str& 转换为 Vec<String>?

如何将 Vec<Item> 转换为 Vec<String>?

如何将 Vec<T> 转换为 HashMap<T,T>?