From 966c3427a272a7ef2fc84780ff0d198aad3bafd8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Wed, 22 Mar 2023 20:34:25 +0200 Subject: hashmap Sponsored-by: author --- src/main.rs | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/main.rs b/src/main.rs index ef50ff7..d3c1ef5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,30 +1,24 @@ +use std::collections::HashMap; +use std::hash::Hash; + #[derive(Debug)] -struct Container { - values: Vec<(K, V)>, +struct Container { + values: HashMap, } -impl Container { +impl Container { fn new() -> Self { - Self { values: vec![] } + Self { + values: HashMap::new(), + } } fn insert(&mut self, k: K, v: V) { - for (actual_k, actual_v) in self.values.iter_mut() { - if actual_k == &k { - *actual_v = v; - return; - } - } - self.values.push((k, v)); + self.values.insert(k, v); } fn get(&self, k: &K) -> Option<&V> { - for (actual_k, v) in self.values.iter().rev() { - if actual_k == k { - return Some(v); - } - } - None + self.values.get(k) } } -- cgit v1.2.1