<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>07-散列表 HashMap on 编程那些事儿</title><link>https://before80.github.io/prgms/Rust/RustByExample/std/07-hash/</link><description>Recent content in 07-散列表 HashMap on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 21 Aug 2026 22:34:20 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Rust/RustByExample/std/07-hash/index.xml" rel="self" type="application/rss+xml"/><item><title>01-更改或自定义关键字类型</title><link>https://before80.github.io/prgms/Rust/RustByExample/std/07-hash/01-alt-key-types/</link><pubDate>Thu, 20 Aug 2026 21:20:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/RustByExample/std/07-hash/01-alt-key-types/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/rust-by-example/"&gt;Rust By Example&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/rust-by-example/std/hash/alt_key_types.html"&gt;https://doc.rust-lang.org/stable/rust-by-example/std/hash/alt_key_types.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="更改或自定义关键字类型"&gt;更改或自定义关键字类型&lt;/h1&gt;
&lt;p&gt;任何实现了 &lt;code&gt;Eq&lt;/code&gt; 和 &lt;code&gt;Hash&lt;/code&gt; trait 的类型都可以充当 &lt;code&gt;HashMap&lt;/code&gt; 的键。这包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bool&lt;/code&gt; （当然这个用处不大，因为只有两个可能的键）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;int&lt;/code&gt;，&lt;code&gt;unit&lt;/code&gt;，以及其他整数类型&lt;/li&gt;
&lt;li&gt;&lt;code&gt;String&lt;/code&gt; 和 &lt;code&gt;&amp;amp;str&lt;/code&gt;（友情提示：如果使用 &lt;code&gt;String&lt;/code&gt; 作为键来创建 &lt;code&gt;HashMap&lt;/code&gt;，则可以
将 &lt;code&gt;&amp;amp;str&lt;/code&gt; 作为散列表的 &lt;code&gt;.get()&lt;/code&gt; 方法的参数，以获取值）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;注意到 &lt;code&gt;f32&lt;/code&gt; 和 &lt;code&gt;f64&lt;/code&gt; &lt;strong&gt;没有&lt;/strong&gt;实现 &lt;code&gt;Hash&lt;/code&gt;，这很大程度上是由于若使用浮点数作为散列表的键，&lt;a href="https://en.wikipedia.org/wiki/Floating_point#Accuracy_problems"&gt;浮点精度误差&lt;/a&gt;会很容易导致错误。&lt;/p&gt;</description></item><item><title>02-散列集 HashSet</title><link>https://before80.github.io/prgms/Rust/RustByExample/std/07-hash/02-hashset/</link><pubDate>Thu, 20 Aug 2026 21:20:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/RustByExample/std/07-hash/02-hashset/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/rust-by-example/"&gt;Rust By Example&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/rust-by-example/std/hash/hashset.html"&gt;https://doc.rust-lang.org/stable/rust-by-example/std/hash/hashset.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="散列集-hashset"&gt;散列集 HashSet&lt;/h1&gt;
&lt;p&gt;请把 &lt;code&gt;HashSet&lt;/code&gt; 当成这样一个 &lt;code&gt;HashMap&lt;/code&gt;：我们只关心其中的键而非值（&lt;code&gt;HashSet&amp;lt;T&amp;gt;&lt;/code&gt;
实际上只是对 &lt;code&gt;HashMap&amp;lt;T, ()&amp;gt;&lt;/code&gt; 的封装）。&lt;/p&gt;</description></item></channel></rss>