pub struct HashMap<K, V, S =RandomState> {/* private fields */ }Expand description
Ahash map implemented with quadratic probing and SIMD lookup.
By default,HashMap uses a hashing algorithm selected to provideresistance against HashDoS attacks. The algorithm is randomly seeded, and areasonable best-effort is made to generate this seed from a high quality,secure source of randomness provided by the host without blocking theprogram. Because of this, the randomness of the seed depends on the outputquality of the system’s random number coroutine when the seed is created.In particular, seeds generated when the system’s entropy pool is abnormallylow such as during system boot may be of a lower quality.
The default hashing algorithm is currently SipHash 1-3, though this issubject to change at any point in the future. While its performance is verycompetitive for medium sized keys, other hashing algorithms will outperformit for small keys such as integers as well as large keys such as longstrings, though those algorithms will typicallynot protect againstattacks such as HashDoS.
The hashing algorithm can be replaced on a per-HashMap basis using thedefault,with_hasher, andwith_capacity_and_hasher methods.There are many alternativehashing algorithms available on crates.io.
It is required that the keys implement theEq andHash traits, althoughthis can frequently be achieved by using#[derive(PartialEq, Eq, Hash)].If you implement these yourself, it is important that the followingproperty holds:
k1 == k2 -> hash(k1) == hash(k2)In other words, if two keys are equal, their hashes must be equal.Violating this property is a logic error.
It is also a logic error for a key to be modified in such a way that the key’shash, as determined by theHash trait, or its equality, as determined bytheEq trait, changes while it is in the map. This is normally onlypossible throughCell,RefCell, global state, I/O, or unsafe code.
The behavior resulting from either logic error is not specified, but willbe encapsulated to theHashMap that observed the logic error and notresult in undefined behavior. This could include panics, incorrect results,aborts, memory leaks, and non-termination.
The hash table implementation is a Rust port of Google’sSwissTable.The original C++ version of SwissTable can be foundhere, and thisCppCon talk gives an overview of how the algorithm works.
§Examples
usestd::collections::HashMap;// Type inference lets us omit an explicit type signature (which// would be `HashMap<String, String>` in this example).letmutbook_reviews = HashMap::new();// Review some books.book_reviews.insert("Adventures of Huckleberry Finn".to_string(),"My favorite book.".to_string(),);book_reviews.insert("Grimms' Fairy Tales".to_string(),"Masterpiece.".to_string(),);book_reviews.insert("Pride and Prejudice".to_string(),"Very enjoyable.".to_string(),);book_reviews.insert("The Adventures of Sherlock Holmes".to_string(),"Eye lyked it alot.".to_string(),);// Check for a specific one.// When collections store owned values (String), they can still be// queried using references (&str).if!book_reviews.contains_key("Les Misérables") {println!("We've got {} reviews, but Les Misérables ain't one.", book_reviews.len());}// oops, this review has a lot of spelling mistakes, let's delete it.book_reviews.remove("The Adventures of Sherlock Holmes");// Look up the values associated with some keys.letto_find = ["Pride and Prejudice","Alice's Adventure in Wonderland"];for&bookin&to_find {matchbook_reviews.get(book) {Some(review) =>println!("{book}: {review}"),None=>println!("{book} is unreviewed.") }}// Look up the value for a key (will panic if the key is not found).println!("Review for Jane: {}", book_reviews["Pride and Prejudice"]);// Iterate over everything.for(book, review)in&book_reviews {println!("{book}: \"{review}\"");}AHashMap with a known list of items can be initialized from an array:
usestd::collections::HashMap;letsolar_distance = HashMap::from([ ("Mercury",0.4), ("Venus",0.7), ("Earth",1.0), ("Mars",1.5),]);§Entry API
HashMap implements anEntry API, which allowsfor complex methods of getting, setting, updating and removing keys andtheir values:
usestd::collections::HashMap;// type inference lets us omit an explicit type signature (which// would be `HashMap<&str, u8>` in this example).letmutplayer_stats = HashMap::new();fnrandom_stat_buff() -> u8 {// could actually return some random value here - let's just return // some fixed value for now42}// insert a key only if it doesn't already existplayer_stats.entry("health").or_insert(100);// insert a key using a function that provides a new value only if it// doesn't already existplayer_stats.entry("defence").or_insert_with(random_stat_buff);// update a key, guarding against the key possibly not being setletstat = player_stats.entry("attack").or_insert(100);*stat += random_stat_buff();// modify an entry before an insert with in-place mutationplayer_stats.entry("mana").and_modify(|mana|*mana +=200).or_insert(100);§Usage with custom key types
The easiest way to useHashMap with a custom key type is to deriveEq andHash.We must also derivePartialEq.
usestd::collections::HashMap;#[derive(Hash, Eq, PartialEq, Debug)]structViking { name: String, country: String,}implViking {/// Creates a new Viking.fnnew(name:&str, country:&str) -> Viking { Viking { name: name.to_string(), country: country.to_string() } }}// Use a HashMap to store the vikings' health points.letvikings = HashMap::from([ (Viking::new("Einar","Norway"),25), (Viking::new("Olaf","Denmark"),24), (Viking::new("Harald","Iceland"),12),]);// Use derived implementation to print the status of the vikings.for(viking, health)in&vikings {println!("{viking:?} has {health} hp");}§Usage inconst andstatic
As explained above,HashMap is randomly seeded: eachHashMap instance uses a different seed,which means thatHashMap::new normally cannot be used in aconst orstatic initializer.
However, if you need to use aHashMap in aconst orstatic initializer while retainingrandom seed generation, you can wrap theHashMap inLazyLock.
Alternatively, you can construct aHashMap in aconst orstatic initializer using a differenthasher that does not rely on a random seed.Be aware that aHashMap created this way is notresistant to HashDoS attacks!
usestd::collections::HashMap;usestd::hash::{BuildHasherDefault, DefaultHasher};usestd::sync::{LazyLock, Mutex};// HashMaps with a fixed, non-random hasherconstNONRANDOM_EMPTY_MAP: HashMap<String, Vec<i32>, BuildHasherDefault<DefaultHasher>> = HashMap::with_hasher(BuildHasherDefault::new());staticNONRANDOM_MAP: Mutex<HashMap<String, Vec<i32>, BuildHasherDefault<DefaultHasher>>> = Mutex::new(HashMap::with_hasher(BuildHasherDefault::new()));// HashMaps using LazyLock to retain random seedingconstRANDOM_EMPTY_MAP: LazyLock<HashMap<String, Vec<i32>>> = LazyLock::new(HashMap::new);staticRANDOM_MAP: LazyLock<Mutex<HashMap<String, Vec<i32>>>> = LazyLock::new(|| Mutex::new(HashMap::new()));Implementations§
Source§impl<K, V>HashMap<K, V,RandomState>
impl<K, V>HashMap<K, V,RandomState>
1.0.0 ·Sourcepub fnnew() ->HashMap<K, V,RandomState>
pub fnnew() ->HashMap<K, V,RandomState>
Creates an emptyHashMap.
The hash map is initially created with a capacity of 0, so it will not allocate until itis first inserted into.
§Examples
1.0.0 ·Sourcepub fnwith_capacity(capacity:usize) ->HashMap<K, V,RandomState>
pub fnwith_capacity(capacity:usize) ->HashMap<K, V,RandomState>
Creates an emptyHashMap with at least the specified capacity.
The hash map will be able to hold at leastcapacity elements withoutreallocating. This method is allowed to allocate for more elements thancapacity. Ifcapacity is zero, the hash map will not allocate.
§Examples
Source§impl<K, V, S>HashMap<K, V, S>
impl<K, V, S>HashMap<K, V, S>
1.7.0 (const: 1.85.0) ·Sourcepub const fnwith_hasher(hash_builder: S) ->HashMap<K, V, S>
pub const fnwith_hasher(hash_builder: S) ->HashMap<K, V, S>
Creates an emptyHashMap which will use the given hash builder to hashkeys.
The created map has the default initial capacity.
Warning:hash_builder is normally randomly generated, andis designed to allow HashMaps to be resistant to attacks thatcause many collisions and very poor performance. Setting itmanually using this function can expose a DoS attack vector.
Thehash_builder passed should implement theBuildHasher trait fortheHashMap to be useful, see its documentation for details.
§Examples
1.7.0 ·Sourcepub fnwith_capacity_and_hasher(capacity:usize, hasher: S) ->HashMap<K, V, S>
pub fnwith_capacity_and_hasher(capacity:usize, hasher: S) ->HashMap<K, V, S>
Creates an emptyHashMap with at least the specified capacity, usinghasher to hash the keys.
The hash map will be able to hold at leastcapacity elements withoutreallocating. This method is allowed to allocate for more elements thancapacity. Ifcapacity is zero, the hash map will not allocate.
Warning:hasher is normally randomly generated, andis designed to allow HashMaps to be resistant to attacks thatcause many collisions and very poor performance. Setting itmanually using this function can expose a DoS attack vector.
Thehasher passed should implement theBuildHasher trait fortheHashMap to be useful, see its documentation for details.
§Examples
1.0.0 ·Sourcepub fncapacity(&self) ->usize
pub fncapacity(&self) ->usize
Returns the number of elements the map can hold without reallocating.
This number is a lower bound; theHashMap<K, V> might be able to holdmore, but is guaranteed to be able to hold at least this many.
§Examples
1.0.0 ·Sourcepub fnkeys(&self) ->Keys<'_, K, V>ⓘ
pub fnkeys(&self) ->Keys<'_, K, V>ⓘ
An iterator visiting all keys in arbitrary order.The iterator element type is&'a K.
§Examples
usestd::collections::HashMap;letmap = HashMap::from([ ("a",1), ("b",2), ("c",3),]);forkeyinmap.keys() {println!("{key}");}§Performance
In the current implementation, iterating over keys takes O(capacity) timeinstead of O(len) because it internally visits empty buckets too.
1.54.0 ·Sourcepub fninto_keys(self) ->IntoKeys<K, V>ⓘ
pub fninto_keys(self) ->IntoKeys<K, V>ⓘ
Creates a consuming iterator visiting all the keys in arbitrary order.The map cannot be used after calling this.The iterator element type isK.
§Examples
usestd::collections::HashMap;letmap = HashMap::from([ ("a",1), ("b",2), ("c",3),]);letmutvec: Vec<&str> = map.into_keys().collect();// The `IntoKeys` iterator produces keys in arbitrary order, so the// keys must be sorted to test them against a sorted array.vec.sort_unstable();assert_eq!(vec, ["a","b","c"]);§Performance
In the current implementation, iterating over keys takes O(capacity) timeinstead of O(len) because it internally visits empty buckets too.
1.0.0 ·Sourcepub fnvalues(&self) ->Values<'_, K, V>ⓘ
pub fnvalues(&self) ->Values<'_, K, V>ⓘ
An iterator visiting all values in arbitrary order.The iterator element type is&'a V.
§Examples
usestd::collections::HashMap;letmap = HashMap::from([ ("a",1), ("b",2), ("c",3),]);forvalinmap.values() {println!("{val}");}§Performance
In the current implementation, iterating over values takes O(capacity) timeinstead of O(len) because it internally visits empty buckets too.
1.10.0 ·Sourcepub fnvalues_mut(&mut self) ->ValuesMut<'_, K, V>ⓘ
pub fnvalues_mut(&mut self) ->ValuesMut<'_, K, V>ⓘ
An iterator visiting all values mutably in arbitrary order.The iterator element type is&'a mut V.
§Examples
usestd::collections::HashMap;letmutmap = HashMap::from([ ("a",1), ("b",2), ("c",3),]);forvalinmap.values_mut() {*val =*val +10;}forvalinmap.values() {println!("{val}");}§Performance
In the current implementation, iterating over values takes O(capacity) timeinstead of O(len) because it internally visits empty buckets too.
1.54.0 ·Sourcepub fninto_values(self) ->IntoValues<K, V>ⓘ
pub fninto_values(self) ->IntoValues<K, V>ⓘ
Creates a consuming iterator visiting all the values in arbitrary order.The map cannot be used after calling this.The iterator element type isV.
§Examples
usestd::collections::HashMap;letmap = HashMap::from([ ("a",1), ("b",2), ("c",3),]);letmutvec: Vec<i32> = map.into_values().collect();// The `IntoValues` iterator produces values in arbitrary order, so// the values must be sorted to test them against a sorted array.vec.sort_unstable();assert_eq!(vec, [1,2,3]);§Performance
In the current implementation, iterating over values takes O(capacity) timeinstead of O(len) because it internally visits empty buckets too.
1.0.0 ·Sourcepub fniter(&self) ->Iter<'_, K, V>ⓘ
pub fniter(&self) ->Iter<'_, K, V>ⓘ
An iterator visiting all key-value pairs in arbitrary order.The iterator element type is(&'a K, &'a V).
§Examples
usestd::collections::HashMap;letmap = HashMap::from([ ("a",1), ("b",2), ("c",3),]);for(key, val)inmap.iter() {println!("key: {key} val: {val}");}§Performance
In the current implementation, iterating over map takes O(capacity) timeinstead of O(len) because it internally visits empty buckets too.
1.0.0 ·Sourcepub fniter_mut(&mut self) ->IterMut<'_, K, V>ⓘ
pub fniter_mut(&mut self) ->IterMut<'_, K, V>ⓘ
An iterator visiting all key-value pairs in arbitrary order,with mutable references to the values.The iterator element type is(&'a K, &'a mut V).
§Examples
usestd::collections::HashMap;letmutmap = HashMap::from([ ("a",1), ("b",2), ("c",3),]);// Update all valuesfor(_, val)inmap.iter_mut() {*val*=2;}for(key, val)in&map {println!("key: {key} val: {val}");}§Performance
In the current implementation, iterating over map takes O(capacity) timeinstead of O(len) because it internally visits empty buckets too.
1.6.0 ·Sourcepub fndrain(&mut self) ->Drain<'_, K, V>ⓘ
pub fndrain(&mut self) ->Drain<'_, K, V>ⓘ
Clears the map, returning all key-value pairs as an iterator. Keeps theallocated memory for reuse.
If the returned iterator is dropped before being fully consumed, itdrops the remaining key-value pairs. The returned iterator keeps amutable borrow on the map to optimize its implementation.
§Examples
1.88.0 ·Sourcepub fnextract_if<F>(&mut self, pred: F) ->ExtractIf<'_, K, V, F>ⓘ
pub fnextract_if<F>(&mut self, pred: F) ->ExtractIf<'_, K, V, F>ⓘ
Creates an iterator which uses a closure to determine if an element (key-value pair) should be removed.
If the closure returnstrue, the element is removed from the map andyielded. If the closure returnsfalse, or panics, the element remainsin the map and will not be yielded.
The iterator also lets you mutate the value of each element in theclosure, regardless of whether you choose to keep or remove it.
If the returnedExtractIf is not exhausted, e.g. because it is dropped without iteratingor the iteration short-circuits, then the remaining elements will be retained.Useretain with a negated predicate if you do not need the returned iterator.
§Examples
Splitting a map into even and odd keys, reusing the original map:
usestd::collections::HashMap;letmutmap: HashMap<i32, i32> = (0..8).map(|x| (x, x)).collect();letextracted: HashMap<i32, i32> = map.extract_if(|k, _v| k %2==0).collect();letmutevens = extracted.keys().copied().collect::<Vec<_>>();letmutodds = map.keys().copied().collect::<Vec<_>>();evens.sort();odds.sort();assert_eq!(evens,vec![0,2,4,6]);assert_eq!(odds,vec![1,3,5,7]);1.18.0 ·Sourcepub fnretain<F>(&mut self, f: F)
pub fnretain<F>(&mut self, f: F)
Retains only the elements specified by the predicate.
In other words, remove all pairs(k, v) for whichf(&k, &mut v) returnsfalse.The elements are visited in unsorted (and unspecified) order.
§Examples
usestd::collections::HashMap;letmutmap: HashMap<i32, i32> = (0..8).map(|x| (x, x*10)).collect();map.retain(|&k,_| k %2==0);assert_eq!(map.len(),4);§Performance
In the current implementation, this operation takes O(capacity) timeinstead of O(len) because it internally visits empty buckets too.
1.0.0 ·Sourcepub fnclear(&mut self)
pub fnclear(&mut self)
Clears the map, removing all key-value pairs. Keeps the allocated memoryfor reuse.
§Examples
1.9.0 ·Sourcepub fnhasher(&self) ->&S
pub fnhasher(&self) ->&S
Returns a reference to the map’sBuildHasher.
§Examples
Source§impl<K, V, S>HashMap<K, V, S>
impl<K, V, S>HashMap<K, V, S>
1.0.0 ·Sourcepub fnreserve(&mut self, additional:usize)
pub fnreserve(&mut self, additional:usize)
Reserves capacity for at leastadditional more elements to be insertedin theHashMap. The collection may reserve more space to speculativelyavoid frequent reallocations. After callingreserve,capacity will be greater than or equal toself.len() + additional.Does nothing if capacity is already sufficient.
§Panics
Panics if the new allocation size overflowsusize.
§Examples
1.57.0 ·Sourcepub fntry_reserve(&mut self, additional:usize) ->Result<(),TryReserveError>
pub fntry_reserve(&mut self, additional:usize) ->Result<(),TryReserveError>
Tries to reserve capacity for at leastadditional more elements to be insertedin theHashMap. The collection may reserve more space to speculativelyavoid frequent reallocations. After callingtry_reserve,capacity will be greater than or equal toself.len() + additional ifit returnsOk(()).Does nothing if capacity is already sufficient.
§Errors
If the capacity overflows, or the allocator reports a failure, then an erroris returned.
§Examples
1.0.0 ·Sourcepub fnshrink_to_fit(&mut self)
pub fnshrink_to_fit(&mut self)
Shrinks the capacity of the map as much as possible. It will dropdown as much as possible while maintaining the internal rulesand possibly leaving some space in accordance with the resize policy.
§Examples
1.56.0 ·Sourcepub fnshrink_to(&mut self, min_capacity:usize)
pub fnshrink_to(&mut self, min_capacity:usize)
Shrinks the capacity of the map with a lower limit. It will dropdown no lower than the supplied limit while maintaining the internal rulesand possibly leaving some space in accordance with the resize policy.
If the current capacity is less than the lower limit, this is a no-op.
§Examples
1.0.0 ·Sourcepub fnentry(&mut self, key: K) ->Entry<'_, K, V>
pub fnentry(&mut self, key: K) ->Entry<'_, K, V>
Gets the given key’s corresponding entry in the map for in-place manipulation.
§Examples
1.0.0 ·Sourcepub fnget<Q>(&self, k:&Q) ->Option<&V>
pub fnget<Q>(&self, k:&Q) ->Option<&V>
1.40.0 ·Sourcepub fnget_key_value<Q>(&self, k:&Q) ->Option<(&K,&V)>
pub fnget_key_value<Q>(&self, k:&Q) ->Option<(&K,&V)>
Returns the key-value pair corresponding to the supplied key. This ispotentially useful:
- for key types where non-identical keys can be considered equal;
- for getting the
&Kstored key value from a borrowed&Qlookup key; or - for getting a reference to a key with the same lifetime as the collection.
The supplied key may be any borrowed form of the map’s key type, butHash andEq on the borrowed formmust match those forthe key type.
§Examples
usestd::collections::HashMap;usestd::hash::{Hash, Hasher};#[derive(Clone, Copy, Debug)]structS { id: u32, name:&'staticstr,// ignored by equality and hashing operations}implPartialEqforS {fneq(&self, other:&S) -> bool {self.id == other.id }}implEqforS {}implHashforS {fnhash<H: Hasher>(&self, state:&mutH) {self.id.hash(state); }}letj_a = S { id:1, name:"Jessica"};letj_b = S { id:1, name:"Jess"};letp = S { id:2, name:"Paul"};assert_eq!(j_a, j_b);letmutmap = HashMap::new();map.insert(j_a,"Paris");assert_eq!(map.get_key_value(&j_a),Some((&j_a,&"Paris")));assert_eq!(map.get_key_value(&j_b),Some((&j_a,&"Paris")));// the notable caseassert_eq!(map.get_key_value(&p),None);1.86.0 ·Sourcepub fnget_disjoint_mut<Q, const N:usize>( &mut self, ks: [&Q;N],) -> [Option<&mut V>;N]
pub fnget_disjoint_mut<Q, const N:usize>( &mut self, ks: [&Q;N],) -> [Option<&mut V>;N]
Attempts to get mutable references toN values in the map at once.
Returns an array of lengthN with the results of each query. For soundness, at most onemutable reference will be returned to any value.None will be used if the key is missing.
This method performs a check to ensure there are no duplicate keys, which currently has a time-complexity of O(n^2),so be careful when passing many keys.
§Panics
Panics if any keys are overlapping.
§Examples
usestd::collections::HashMap;letmutlibraries = HashMap::new();libraries.insert("Bodleian Library".to_string(),1602);libraries.insert("Athenæum".to_string(),1807);libraries.insert("Herzogin-Anna-Amalia-Bibliothek".to_string(),1691);libraries.insert("Library of Congress".to_string(),1800);// Get Athenæum and Bodleian Librarylet[Some(a),Some(b)] = libraries.get_disjoint_mut(["Athenæum","Bodleian Library",])else{panic!() };// Assert values of Athenæum and Library of Congressletgot = libraries.get_disjoint_mut(["Athenæum","Library of Congress",]);assert_eq!( got, [Some(&mut1807),Some(&mut1800), ],);// Missing keys result in Noneletgot = libraries.get_disjoint_mut(["Athenæum","New York Public Library",]);assert_eq!( got, [Some(&mut1807),None]);usestd::collections::HashMap;letmutlibraries = HashMap::new();libraries.insert("Athenæum".to_string(),1807);// Duplicate keys panic!letgot = libraries.get_disjoint_mut(["Athenæum","Athenæum",]);1.86.0 ·Sourcepub unsafe fnget_disjoint_unchecked_mut<Q, const N:usize>( &mut self, ks: [&Q;N],) -> [Option<&mut V>;N]
pub unsafe fnget_disjoint_unchecked_mut<Q, const N:usize>( &mut self, ks: [&Q;N],) -> [Option<&mut V>;N]
Attempts to get mutable references toN values in the map at once, without validating thatthe values are unique.
Returns an array of lengthN with the results of each query.None will be used ifthe key is missing.
For a safe alternative seeget_disjoint_mut.
§Safety
Calling this method with overlapping keys isundefined behavior even if the resultingreferences are not used.
§Examples
usestd::collections::HashMap;letmutlibraries = HashMap::new();libraries.insert("Bodleian Library".to_string(),1602);libraries.insert("Athenæum".to_string(),1807);libraries.insert("Herzogin-Anna-Amalia-Bibliothek".to_string(),1691);libraries.insert("Library of Congress".to_string(),1800);// SAFETY: The keys do not overlap.let[Some(a),Some(b)] = (unsafe{ libraries.get_disjoint_unchecked_mut(["Athenæum","Bodleian Library",]) })else{panic!() };// SAFETY: The keys do not overlap.letgot =unsafe{ libraries.get_disjoint_unchecked_mut(["Athenæum","Library of Congress",]) };assert_eq!( got, [Some(&mut1807),Some(&mut1800), ],);// SAFETY: The keys do not overlap.letgot =unsafe{ libraries.get_disjoint_unchecked_mut(["Athenæum","New York Public Library",]) };// Missing keys result in Noneassert_eq!(got, [Some(&mut1807),None]);1.0.0 ·Sourcepub fncontains_key<Q>(&self, k:&Q) ->bool
pub fncontains_key<Q>(&self, k:&Q) ->bool
1.0.0 ·Sourcepub fnget_mut<Q>(&mut self, k:&Q) ->Option<&mut V>
pub fnget_mut<Q>(&mut self, k:&Q) ->Option<&mut V>
1.0.0 ·Sourcepub fninsert(&mut self, k: K, v: V) ->Option<V>
pub fninsert(&mut self, k: K, v: V) ->Option<V>
Inserts a key-value pair into the map.
If the map did not have this key present,None is returned.
If the map did have this key present, the value is updated, and the oldvalue is returned. The key is not updated, though; this matters fortypes that can be== without being identical. See themodule-leveldocumentation for more.
§Examples
Sourcepub fntry_insert( &mut self, key: K, value: V,) ->Result<&mut V,OccupiedError<'_, K, V>>
🔬This is a nightly-only experimental API. (map_try_insert #82766)
pub fntry_insert( &mut self, key: K, value: V,) ->Result<&mut V,OccupiedError<'_, K, V>>
map_try_insert #82766)Tries to insert a key-value pair into the map, and returnsa mutable reference to the value in the entry.
If the map already had this key present, nothing is updated, andan error containing the occupied entry and the value is returned.
§Examples
Basic usage:
1.0.0 ·Sourcepub fnremove<Q>(&mut self, k:&Q) ->Option<V>
pub fnremove<Q>(&mut self, k:&Q) ->Option<V>
1.27.0 ·Sourcepub fnremove_entry<Q>(&mut self, k:&Q) ->Option<(K, V)>
pub fnremove_entry<Q>(&mut self, k:&Q) ->Option<(K, V)>
Trait Implementations§
1.4.0 ·Source§impl<'a, K, V, S>Extend<(&'a K,&'a V)> forHashMap<K, V, S>
impl<'a, K, V, S>Extend<(&'a K,&'a V)> forHashMap<K, V, S>
1.0.0 ·Source§impl<K, V, S>Extend<(K, V)> forHashMap<K, V, S>
Inserts all new key-values from the iterator and replaces values with existingkeys with new values returned from the iterator.
impl<K, V, S>Extend<(K, V)> forHashMap<K, V, S>
Inserts all new key-values from the iterator and replaces values with existingkeys with new values returned from the iterator.