为什么两次使用相同的向量散列会得到不同的哈希码?

Yjy*_*eff 2 hash vector rust

我想获取此向量的哈希码:

let vec = vec![1,2,3];
let tmp = vec![1,2,3];
let mut hash = DefaultHasher::new();
vec.hash(&mut hash);
println!("{}", hash.finish());
tmp.hash(&mut hash);
println!("{}", hash.finish());
Run Code Online (Sandbox Code Playgroud)

但输出是:

13585085576907263210
8618793686565720431
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?我已多次尝试并始终获得相同的结果.我希望具有相同元素的向量散列到相同的哈希码.

blu*_*uss 9

之后没有重置哈希finish.DefaultHasher::new()为要计算的每个哈希值创建一个新的哈希状态.