MENU

【Java】コレクションについてまとめてみた。(Map)

こんにちは。くまごろーです。
今日は先日の記事に続いて、Javaのコレクションの1つ「Map」についてまとめようと思います。

1 Mapとは?

Mapとは、2つの情報をキー(key)と値(value)のペアとして格納するデータ構造。格納した値はキーを指定して読み書きできる。キーの重複は不可になっている。
 
Mapには、以下の様なクラスがある。
 
(1)HashMapクラス
Mapインターフェースの中で最も利用されるクラス。TreeMapと比べて以下の特徴がある。
 ・null:扱える
 ・自動ソート:なし(格納した順番そのまま)
 
(2)TreeMapクラス 
基本的にHashMapクラスと同じだが、以下の点においてHashMapと異なっている。
 ・null:扱えない
 ・自動ソート:あり(キーによって自動的にソートされる)
  
 
2 HashMapクラスについて
Mapインターフェースの中でよく使用されるクラス。
 
(1)HashMapをインスタンス化する

Map<キーの型, 値の型> マップ変数 = new HashMap<キーの型, 値の型>();

 
(2)HashMapの持つメソッド
 

メソッド 意味 戻り値
<要素格納>
put(キー,値) Mapにキーと値のペアを格納
<要素取り出し>
get(キー) キー値に対応する値を取得(なければnullを返す)
<マップの調査>
size() 格納されているペア数を返す int
isEmpty() 素数がゼロであるかを判定 boolean
containsKey(キー) 指定データがキーに含まれているか判定 boolean
containsValue(値) 指定データが値に含まれているか判定 boolean
<要素を削除>
clear() 要素をすべて削除する void
remove(キー) 指定した内容の要素を削除
<その他>
keySet() 格納されているキーの一覧を返す Set<キー>

  
(3)要素の取り出しについて
Mapの要素を一つ一つ取り出す場合、通常の拡張for文で取り出そうとするとエラーが発生する。

<Mapの要素を順に取り出す>

for(キーの型 key: マップ変数.keySet()) {  
  値の型 value = マップ変数.get(key);  //キーを指定して値を取得
  //何らかの処理
}

 
<例>

Map<Integer, String> members = new HashMap<Integer, String>();
members.put(0, "ピカチュウ");
members.put(1, "フシギダネ");
members.put(2, "ヒトカゲ");
members.put(3, "ゼニガメ");
for(Integer key : members.keySer()) {
  String value = members.get(key);
  System.out.println(value);
}

 
 
3 参考