Vector 为什么将同一个向量散列两次会得到不同的散列码?

Vector 为什么将同一个向量散列两次会得到不同的散列码?,vector,hash,rust,Vector,Hash,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()); 然而,结果是: 1358505576907263210 861879368656

我想得到这个向量的散列码:

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());
然而,结果是:

1358505576907263210
8618793686565720431

发生什么事了?我试过多次,结果总是一样的。我希望具有相同元素的向量散列到相同的散列代码。

散列程序在
finish
后不会重置。为要计算的每个哈希值创建一个新的哈希值状态,并使用
DefaultHasher::new()