此问题已在此处有答案:
How do I collect the values of a HashMap into a vector?(3个答案)
15天前关闭。
我有一个hashmap: HashMap<SomeKey, SomeValue>
,我想消费hashmap
并获得它的所有值作为一个向量。
我现在的做法是
let v: Vec<SomeValue> = hashmap.values().cloned().collect();
cloned
复制每个值,但这种构造不会消耗散列表。我很乐意使用Map。
有没有什么方法可以在不复制的情况下获取值?
2条答案
按热度按时间hfyxw5xn1#
将整个
HashMap
转换为迭代器并丢弃键:然后,您可以对迭代器做任何您想做的事情,包括将其收集到
Vec<_>
中。另请参阅:
tf7tbtn22#
从Rust 1.54开始,你可以使用
HashMap::into_values
: