2024-04-06 02:30:11 +08:00
|
|
|
/*
|
|
|
|
* File: build_in_hash.rs
|
|
|
|
* Created Time: 2023-7-6
|
|
|
|
* Author: WSL0809 (wslzzy@outlook.com)
|
|
|
|
*/
|
|
|
|
|
2024-11-25 19:21:11 +08:00
|
|
|
use hello_algo_rust::include::ListNode;
|
2024-04-06 02:30:11 +08:00
|
|
|
|
|
|
|
use std::collections::hash_map::DefaultHasher;
|
|
|
|
use std::hash::{Hash, Hasher};
|
|
|
|
|
|
|
|
/* Driver Code */
|
|
|
|
fn main() {
|
|
|
|
let num = 3;
|
|
|
|
let mut num_hasher = DefaultHasher::new();
|
|
|
|
num.hash(&mut num_hasher);
|
|
|
|
let hash_num = num_hasher.finish();
|
|
|
|
println!("整數 {} 的雜湊值為 {}", num, hash_num);
|
|
|
|
|
|
|
|
let bol = true;
|
|
|
|
let mut bol_hasher = DefaultHasher::new();
|
|
|
|
bol.hash(&mut bol_hasher);
|
|
|
|
let hash_bol = bol_hasher.finish();
|
|
|
|
println!("布林量 {} 的雜湊值為 {}", bol, hash_bol);
|
|
|
|
|
|
|
|
let dec: f32 = 3.14159;
|
|
|
|
let mut dec_hasher = DefaultHasher::new();
|
|
|
|
dec.to_bits().hash(&mut dec_hasher);
|
|
|
|
let hash_dec = dec_hasher.finish();
|
|
|
|
println!("小數 {} 的雜湊值為 {}", dec, hash_dec);
|
|
|
|
|
|
|
|
let str = "Hello 演算法";
|
|
|
|
let mut str_hasher = DefaultHasher::new();
|
|
|
|
str.hash(&mut str_hasher);
|
|
|
|
let hash_str = str_hasher.finish();
|
|
|
|
println!("字串 {} 的雜湊值為 {}", str, hash_str);
|
|
|
|
|
|
|
|
let arr = (&12836, &"小哈");
|
|
|
|
let mut tup_hasher = DefaultHasher::new();
|
|
|
|
arr.hash(&mut tup_hasher);
|
|
|
|
let hash_tup = tup_hasher.finish();
|
|
|
|
println!("元組 {:?} 的雜湊值為 {}", arr, hash_tup);
|
|
|
|
|
|
|
|
let node = ListNode::new(42);
|
|
|
|
let mut hasher = DefaultHasher::new();
|
|
|
|
node.borrow().val.hash(&mut hasher);
|
|
|
|
let hash = hasher.finish();
|
|
|
|
println!("節點物件 {:?} 的雜湊值為{}", node, hash);
|
|
|
|
}
|