Rust 将元组向量转换为具有向量值的hashmap的最佳方法是什么?
我还没开始生锈,所以我的借书检查有点麻烦。我有一个json对象,它是以下形式的向量:Rust 将元组向量转换为具有向量值的hashmap的最佳方法是什么?,rust,Rust,我还没开始生锈,所以我的借书检查有点麻烦。我有一个json对象,它是以下形式的向量: Vec。 我希望能够将这个向量转换成散列映射,以便允许快速访问每个元素。最初,每个元组都是唯一的,用户将传递一对字符串和一个字符,因此我有一个hashmap,其形式为hashmap。转换函数只是对作为json对象传递的原始向量的迭代,如下所示: let new_transition_function: Vec<(String, Option<char>, String)> = origi
Vec
。
我希望能够将这个向量转换成散列映射,以便允许快速访问每个元素。最初,每个元组都是唯一的,用户将传递一对字符串和一个字符,因此我有一个hashmap,其形式为hashmap
。转换函数只是对作为json对象传递的原始向量的迭代,如下所示:
let new_transition_function: Vec<(String, Option<char>, String)> = origin
.transition_function
.iter()
.map(|(x, y, z)| ((x.to_owned(), y.to_owned()), z.to_owned()))
.collect();
let new_transition_函数:Vec=原点
.转换函数
.国际热核实验堆(iter)
.map(|(x,y,z)|((x.to_owned(),y.to_owned()),z.to_owned())
.收集();
但是,当第三个元素是非唯一的时,当我需要保留每个值时,该值在hashmap中被jsut替换。我如何才能最有效、最惯用地将
Vec
的旧向量转换为HashMap
?但它没有,谢谢你。这个问题是问他们应该使用什么样的数据结构,而我已经知道我要使用哪种数据结构。我在问如何将json对象转换为所需的数据结构。然而,他们的解决方案和我的完全相同,所以这很简单。是的,但他们也涵盖了实现这一点的两种主要方法。1) 使用HashMap
并将其与Entry
API一起使用,或者2)使用crateAh,我明白了。有没有办法使用内置的.iter().map()和.collect()函数创建多重映射?我没有看到太多关于它的文档,但我可以查看multimap源代码以进行检查。感谢您的帮助如果没有,您可以随时将地图
替换为for_each
并为每个条目调用insert
,这很好。但是请记住,仅仅在代码中具有一些可变性并不一定会使它变得更糟糕/糟糕。这里不需要创建新的答案。最好的选择是你接受重复投票,因为已经存在的答案是相当好的,未来的读者可以从中受益,但是,谢谢你。这个问题是问他们应该使用什么样的数据结构,而我已经知道我要使用哪种数据结构。我在问如何将json对象转换为所需的数据结构。然而,他们的解决方案和我的完全相同,所以这很简单。是的,但他们也涵盖了实现这一点的两种主要方法。1) 使用HashMap
并将其与Entry
API一起使用,或者2)使用crateAh,我明白了。有没有办法使用内置的.iter().map()和.collect()函数创建多重映射?我没有看到太多关于它的文档,但我可以查看multimap源代码以进行检查。感谢您的帮助如果没有,您可以随时将地图
替换为for_each
并为每个条目调用insert
,这很好。但是请记住,仅仅在代码中具有一些可变性并不一定会使它变得更糟糕/糟糕。这里不需要创建新的答案。最好的选择是接受重复投票,因为已经存在的答案非常好,未来的读者可以从中受益