<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E8%BE%9E%E6%9B%B8</id>
	<title>Rustの基礎 - 辞書 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E8%BE%9E%E6%9B%B8"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E8%BE%9E%E6%9B%B8&amp;action=history"/>
	<updated>2026-09-02T13:45:38Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E8%BE%9E%E6%9B%B8&amp;diff=13624&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == HashMap (ハッシュマップ) とは、複数のデータ型を管理することができるコレクション型である。&lt;br&gt; 連想配列とも呼ばれる。&lt;br&gt; &lt;br&gt; HashMapの特徴は、要素を格納する時に、キーを使用して管理することができる。&lt;br&gt; &lt;br&gt; RustのHashMapは標準ライブラリに含まれているが、使用する場合には &lt;code&gt;std::collections::HashMap&lt;/code&gt; をインポートする必要があ…」</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E8%BE%9E%E6%9B%B8&amp;diff=13624&amp;oldid=prev"/>
		<updated>2025-11-30T18:12:22Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == HashMap (ハッシュマップ) とは、複数のデータ型を管理することができるコレクション型である。&amp;lt;br&amp;gt; 連想配列とも呼ばれる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; HashMapの特徴は、要素を格納する時に、キーを使用して管理することができる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; RustのHashMapは標準ライブラリに含まれているが、使用する場合には &amp;lt;code&amp;gt;std::collections::HashMap&amp;lt;/code&amp;gt; をインポートする必要があ…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
HashMap (ハッシュマップ) とは、複数のデータ型を管理することができるコレクション型である。&amp;lt;br&amp;gt;&lt;br /&gt;
連想配列とも呼ばれる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HashMapの特徴は、要素を格納する時に、キーを使用して管理することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
RustのHashMapは標準ライブラリに含まれているが、使用する場合には &amp;lt;code&amp;gt;std::collections::HashMap&amp;lt;/code&amp;gt; をインポートする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HashMapは要素の順番を保持しない。&amp;lt;br&amp;gt;&lt;br /&gt;
順番を保持したい場合は、&amp;lt;code&amp;gt;BTreeMap&amp;lt;/code&amp;gt; や &amp;lt;code&amp;gt;IndexMap&amp;lt;/code&amp;gt; 等の別のデータ構造を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashMapの定義 ==&lt;br /&gt;
HashMapを使用するには、&amp;lt;code&amp;gt;std::collections::HashMap&amp;lt;/code&amp;gt; をインポートする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
HashMapの作成には、&amp;lt;code&amp;gt;new&amp;lt;/code&amp;gt; メソッドを使用、または、マクロを使用する方法がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な宣言方法は、HashMap::new()で空のHashMapを生成して、&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt; メソッドで要素を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 // 空のHashMapを作成&lt;br /&gt;
 let mut map = HashMap::new();&lt;br /&gt;
 &lt;br /&gt;
 // 要素を追加&lt;br /&gt;
 map.insert(&amp;quot;x&amp;quot;, 100);&lt;br /&gt;
 map.insert(&amp;quot;y&amp;quot;, 200);&lt;br /&gt;
 map.insert(&amp;quot;z&amp;quot;, 300);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、最初から値を持つHashMapを作成することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::from([&lt;br /&gt;
    (&amp;quot;x&amp;quot;, 100),&lt;br /&gt;
    (&amp;quot;y&amp;quot;, 200),&lt;br /&gt;
    (&amp;quot;z&amp;quot;, 300),&lt;br /&gt;
 ]);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashMapの操作 ==&lt;br /&gt;
HashMapはキーでそれぞれの値を抽出することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt; メソッドを使用してキーを指定することで、値を取得できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt; メソッドはOption型を返すため、値が存在しない場合に安全に処理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::new();&lt;br /&gt;
 map.insert(&amp;quot;x&amp;quot;, 100);&lt;br /&gt;
 map.insert(&amp;quot;y&amp;quot;, 200);&lt;br /&gt;
 &lt;br /&gt;
 // get()はOption&amp;lt;&amp;amp;V&amp;gt;を返すため、unwrap や .copied()を使用する&lt;br /&gt;
 println!(&amp;quot;{}&amp;quot;, map.get(&amp;quot;x&amp;quot;).unwrap());&lt;br /&gt;
 println!(&amp;quot;{}&amp;quot;, map.get(&amp;quot;y&amp;quot;).unwrap());&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 100&lt;br /&gt;
 200&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次は、キーを指定して値を変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;insert&amp;lt;/code&amp;gt; メソッドで既存のキーに値を設定すると、値が上書きされる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::new();&lt;br /&gt;
 map.insert(&amp;quot;x&amp;quot;, 100);&lt;br /&gt;
 map.insert(&amp;quot;y&amp;quot;, 200);&lt;br /&gt;
 &lt;br /&gt;
 // 既存のキーに新しい値を設定&lt;br /&gt;
 map.insert(&amp;quot;x&amp;quot;, 300);&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {&amp;quot;x&amp;quot;: 300, &amp;quot;y&amp;quot;: 200}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、新たにデータをHashMapに追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、新しいキーを指定して、新しい要素を追加している。(文字列のキーと数値のキーの両方で行う)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map1 = HashMap::new();&lt;br /&gt;
 map1.insert(&amp;quot;x&amp;quot;, 100);&lt;br /&gt;
 map1.insert(&amp;quot;y&amp;quot;, 200);&lt;br /&gt;
 map1.insert(&amp;quot;z&amp;quot;, 300);&lt;br /&gt;
 &lt;br /&gt;
 // 数値のキーを持つHashMap&lt;br /&gt;
 let mut map2 = HashMap::new();&lt;br /&gt;
 map2.insert(10, 400);&lt;br /&gt;
 &lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map1);&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map2);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {&amp;quot;x&amp;quot;: 100, &amp;quot;y&amp;quot;: 200, &amp;quot;z&amp;quot;: 300}&lt;br /&gt;
 {10: 400}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== イテレータからHashMapを作成する ==&lt;br /&gt;
HashMapは、イテレータを持つコレクション (配列、ベクター、タプル等) を &amp;lt;code&amp;gt;collect&amp;lt;/code&amp;gt; メソッドを使用して変換して作成することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
それぞれキーと要素との2つの組み合わせになったものであることが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、タプルの配列やベクタからcollectメソッドでHashMapに変換する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 // タプルの配列から作成&lt;br /&gt;
 let pairs = [(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;), (&amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;), (&amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;)];&lt;br /&gt;
 let map1: HashMap&amp;lt;_, _&amp;gt; = pairs.into_iter().collect();&lt;br /&gt;
 &lt;br /&gt;
 // ベクターから作成&lt;br /&gt;
 let vec_pairs = vec![(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;), (&amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;), (&amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;)];&lt;br /&gt;
 let map2: HashMap&amp;lt;_, _&amp;gt; = vec_pairs.into_iter().collect();&lt;br /&gt;
 &lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map1);&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map2);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {&amp;quot;a&amp;quot;: &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;: &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;: &amp;quot;f&amp;quot;}&lt;br /&gt;
 {&amp;quot;a&amp;quot;: &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;: &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;: &amp;quot;f&amp;quot;}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、2つの別々のベクタから &amp;lt;code&amp;gt;zip&amp;lt;/code&amp;gt; メソッドを使用してHashMapを作成することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let keys = vec![&amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;];&lt;br /&gt;
 let values = vec![100, 200];&lt;br /&gt;
 let map: HashMap&amp;lt;_, _&amp;gt; = keys.into_iter().zip(values.into_iter()).collect();&lt;br /&gt;
 &lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {&amp;quot;x&amp;quot;: 100, &amp;quot;y&amp;quot;: 200}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashMapのメソッド ==&lt;br /&gt;
HashMap型には、様々なメソッドがある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== keysメソッド と valuesメソッド で全てのキーと値を取得する ====&lt;br /&gt;
これらのメソッドは、それぞれキーの全て、値の全てを取得する時に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
イテレータを返すため、ループ処理や他のコレクションへの変換に使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::new();&lt;br /&gt;
 map.insert(&amp;quot;x&amp;quot;, 100);&lt;br /&gt;
 map.insert(&amp;quot;y&amp;quot;, 200);&lt;br /&gt;
 &lt;br /&gt;
 // キーを取得&lt;br /&gt;
 for key in map.keys() {&lt;br /&gt;
    println!(&amp;quot;キー: {}&amp;quot;, key);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 値を取得&lt;br /&gt;
 for value in map.values() {&lt;br /&gt;
    println!(&amp;quot;値: {}&amp;quot;, value);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 キー : x&lt;br /&gt;
 キー : y&lt;br /&gt;
 値   : 100&lt;br /&gt;
 値   : 200&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== extendメソッドでHashMapを結合する ====&lt;br /&gt;
extendメソッドは、2つの異なるHashMapを結合することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
キーが同じ場合は新しい値に更新する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map1 = HashMap::from([&lt;br /&gt;
    (&amp;quot;l&amp;quot;, 10),&lt;br /&gt;
    (&amp;quot;m&amp;quot;, 200),&lt;br /&gt;
    (&amp;quot;n&amp;quot;, 300),&lt;br /&gt;
 ]);&lt;br /&gt;
 &lt;br /&gt;
 let map2 = HashMap::from([&lt;br /&gt;
    (&amp;quot;l&amp;quot;, 100),&lt;br /&gt;
    (&amp;quot;o&amp;quot;, 400),&lt;br /&gt;
 ]);&lt;br /&gt;
 &lt;br /&gt;
 map1.extend(map2);&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map1);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {&amp;quot;l&amp;quot;: 100, &amp;quot;m&amp;quot;: 200, &amp;quot;n&amp;quot;: 300, &amp;quot;o&amp;quot;: 400}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== getメソッドで値を取得する ====&lt;br /&gt;
getメソッドを使用してキーを指定し、値を取得することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
getメソッドはOption&amp;lt;&amp;amp;V&amp;gt;を返すため、キーが存在しない場合にもパニックせず、Noneが返される。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::new();&lt;br /&gt;
 map.insert(&amp;quot;x&amp;quot;, 10);&lt;br /&gt;
 map.insert(&amp;quot;y&amp;quot;, 20);&lt;br /&gt;
 &lt;br /&gt;
 // 値を取得&lt;br /&gt;
 let val = map.get(&amp;quot;x&amp;quot;);&lt;br /&gt;
 match val {&lt;br /&gt;
    Some(v) =&amp;gt; println!(&amp;quot;{}&amp;quot;, v),&lt;br /&gt;
    None =&amp;gt; println!(&amp;quot;キーが存在しません&amp;quot;),&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 10&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== removeメソッドで値を取得して削除する ====&lt;br /&gt;
removeメソッドはキーを指定して値を取得し、HashMapからその要素を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
Option&amp;lt;V&amp;gt;を返すため、キーが存在しない場合はNoneが返される。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::from([&lt;br /&gt;
    (&amp;quot;x&amp;quot;, 100),&lt;br /&gt;
    (&amp;quot;y&amp;quot;, 200),&lt;br /&gt;
    (&amp;quot;z&amp;quot;, 300),&lt;br /&gt;
 ]);&lt;br /&gt;
 &lt;br /&gt;
 let value = map.remove(&amp;quot;x&amp;quot;);&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, value);&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 Some(100)&lt;br /&gt;
 {&amp;quot;y&amp;quot;: 200, &amp;quot;z&amp;quot;: 300}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 個別の要素を削除する ====&lt;br /&gt;
&amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt; メソッドを使用すると、指定したキーの要素をHashMapから削除することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::from([&lt;br /&gt;
    (&amp;quot;x&amp;quot;, 100),&lt;br /&gt;
    (&amp;quot;y&amp;quot;, 200),&lt;br /&gt;
    (&amp;quot;z&amp;quot;, 300),&lt;br /&gt;
 ]);&lt;br /&gt;
 &lt;br /&gt;
 map.remove(&amp;quot;y&amp;quot;);&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {&amp;quot;x&amp;quot;: 100, &amp;quot;z&amp;quot;: 300}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HashMapの変数自体が不要になった場合は、Rustの所有権システムによりスコープを抜けた時点で自動的にメモリが解放される。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    let map = HashMap::new();&lt;br /&gt;
    // mapを使用&lt;br /&gt;
 } // ここでmapは自動的に解放される&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== clearメソッドで全ての要素を削除する ====&lt;br /&gt;
clearメソッドを使用すると、全ての要素を削除して空のHashMapが残り、HashMap自体の操作を続けることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::from([&lt;br /&gt;
    (&amp;quot;x&amp;quot;, 100),&lt;br /&gt;
    (&amp;quot;y&amp;quot;, 200),&lt;br /&gt;
    (&amp;quot;z&amp;quot;, 300),&lt;br /&gt;
 ]);&lt;br /&gt;
 &lt;br /&gt;
 map.clear();&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== contains_keyメソッドでキーの有無を調べる ====&lt;br /&gt;
HashMapに指定するキーがあるかを調べるには、&amp;lt;code&amp;gt;contains_key&amp;lt;/code&amp;gt; メソッドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
HashMapにキーが存在すればtrue、キーが存在しない場合はfalseを返す。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map = HashMap::from([&lt;br /&gt;
    (&amp;quot;x&amp;quot;, 100),&lt;br /&gt;
    (&amp;quot;y&amp;quot;, 200),&lt;br /&gt;
    (&amp;quot;z&amp;quot;, 300),&lt;br /&gt;
 ]);&lt;br /&gt;
 &lt;br /&gt;
 println!(&amp;quot;{}&amp;quot;, map.contains_key(&amp;quot;x&amp;quot;));&lt;br /&gt;
 println!(&amp;quot;{}&amp;quot;, map.contains_key(&amp;quot;a&amp;quot;));&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 true&lt;br /&gt;
 false&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashMapのクローン ==&lt;br /&gt;
HashMapをコピーするには、代入による所有権の移動と &amp;lt;code&amp;gt;clone&amp;lt;/code&amp;gt; メソッドを使用する方法がある。&amp;lt;br&amp;gt;&lt;br /&gt;
Rustの所有権システムにより、単純な代入では所有権が移動し、元の変数は使用できなくなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 代入による所有権の移動 ====&lt;br /&gt;
単純な代入では、所有権が移動するため、元の変数は使用できなくなる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map1 = HashMap::from([&lt;br /&gt;
    (&amp;quot;x&amp;quot;, 100),&lt;br /&gt;
    (&amp;quot;y&amp;quot;, 200),&lt;br /&gt;
    (&amp;quot;z&amp;quot;, 300),&lt;br /&gt;
 ]);&lt;br /&gt;
 &lt;br /&gt;
 let mut map2 = map1; // 所有権が移動&lt;br /&gt;
 map2.insert(&amp;quot;x&amp;quot;, 500);&lt;br /&gt;
 &lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map2);&lt;br /&gt;
 // println!(&amp;quot;{:?}&amp;quot;, map1); // エラー: map1は既に使用できない&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {&amp;quot;x&amp;quot;: 500, &amp;quot;y&amp;quot;: 200, &amp;quot;z&amp;quot;: 300}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== cloneメソッドで独立したコピーを作成する ====&lt;br /&gt;
全く独立した別のHashMapとして扱えるようにするには、&amp;lt;code&amp;gt;clone&amp;lt;/code&amp;gt; メソッドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
cloneメソッドはディープコピーを行うため、一方を変更しても他方には影響しない。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 use std::collections::HashMap;&lt;br /&gt;
 &lt;br /&gt;
 let mut map1 = HashMap::from([&lt;br /&gt;
    (&amp;quot;x&amp;quot;, 100),&lt;br /&gt;
    (&amp;quot;y&amp;quot;, 200),&lt;br /&gt;
    (&amp;quot;z&amp;quot;, 300),&lt;br /&gt;
 ]);&lt;br /&gt;
 &lt;br /&gt;
 let mut map2 = map1.clone(); // クローンを作成&lt;br /&gt;
 map2.insert(&amp;quot;x&amp;quot;, 500);&lt;br /&gt;
 &lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map1);&lt;br /&gt;
 println!(&amp;quot;{:?}&amp;quot;, map2);&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 {&amp;quot;x&amp;quot;: 100, &amp;quot;y&amp;quot;: 200, &amp;quot;z&amp;quot;: 300}&lt;br /&gt;
 {&amp;quot;x&amp;quot;: 500, &amp;quot;y&amp;quot;: 200, &amp;quot;z&amp;quot;: 300}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Rust]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>