「HashMap」の版間の差分
提供: Java入門
(相違点なし)
|
2015年3月21日 (土) 14:18時点における最新版
JavaのHashMapクラスとは、Map インターフェースのハッシュテーブルの実装です。HashMapは、連想配列とも呼ばれます。キーとバリューのペアを保持できます。
読み方
- HashMap
- はっしゅまっぷ
- 連想配列
- れんそうはいれつ
概要
HashMapは、このような形で利用します。キーとバリューの型を指定します。
HashMap<Integer, String> map = new HashMap<>(); map.put(1, "foo"); map.put(2, "bar"); map.put(3, "hoge");
HashMapは、キーの重複を許しません。以下の例では、後から put した 1とbarのペアで上書きします。
HashMap<Integer, String> map = new HashMap<>(); map.put(1, "foo"); map.put(1, "bar"); // こちらが優先される
HashMapのメソッド
型 | メソッド | 説明 |
---|---|---|
void | clear | すべての要素を削除します。 |
Object | clone() | インスタンスをコピーします。 |
boolean | containsKey(Object key) | 指定されたキーを保持している場合はtrueを返します。 |
boolean | containsValue(Object value) | 1つ以上の値があれば、trueを返します。 |
Set<Map.Entry<K,V>> | entrySet() | コンテナに含まれるSetビューを返します。 |
V | get(Object key) | 指定されたキーの値を返します。 |
boolean | isEmpty | コンテナが空の場合は、trueを返します。 |
Set<K> | keySet() | コンテナに含まれるキーのSetビューを返します。 |
V | put(K key, V vlaue) | 指定されたキーとバリューをコンテナに格納します。 |
V | putAll(Map<> m) | 指定されたコンテナをコピーします。 |
V | remove(Object key) | 指定されたキーを削除します。 |
int | size() | コンテナ内のキーの数を返します。 |
Collection<V> | values() | コンテナに含まれる値のCollectionビューを返します。 |
hashmap1
ソースコード hashmap1.java
この例では、拡張for文を用いて、HashMapの要素を表示します。
/* * hashmap1.java * Copyright (C) 2015 kaoru <kaoru@bsd> */ import java.util.HashMap; public class hashmap1 { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, "foo"); map.put(2, "bar"); map.put(3, "hoge"); for (HashMap.Entry<Integer, String> e : map.entrySet() ) { System.out.println(e.getKey() + " " + e.getValue() ); } } }
コンパイル
javac hashmap1.java
実行例
$ java hashmap1 1 foo 2 bar 3 hoge
forEachで表示する例
HashMapの内容をforEachを利用して表示する例です。
/* * hashmap_foreach1.java * Copyright (C) 2015 kaoru <kaoru@bsd> */ import java.util.HashMap; public class hashmap_foreach1 { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, "foo"); map.put(2, "bar"); map.put(3, "hoge"); map.forEach( (key, value) -> System.out.println(key + " " + value ) ); } }