OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:682
区分:プログラム  |  分類:Java  |  最終更新日:2015/07/07
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【Java】HashMapの基本操作
関連タグ:Java, コレクション, 配列, Map, HashMap
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 10,653
Java関連技術まとめ > 【Java】HashMapの基本操作

java.util.HashMapはキーの検索にハッシュを用いたjava.util.Mapインターフェースの実装クラスになります。マップは連想配列ともいい、キーと値の組み合わせで要素を管理します。特長として、キーは重複できず、また順序を持ちません。ただし、キーおよび値にnull値を設定することができます。

 

HashMapクラスの特長と主要メソッド

【クラスの特長】

クラス要素の重複nullの挿入自動ソート
java.util.HashMap 不可 なし

 

【クラスの主要メソッド】

戻り値メソッド説明
void clear() マップの全ての要素を削除します。
Object clone() マップのコピー(シャローコピー)を返します。
boolean containsKey(Object k) マップにキーkが含まれているかを判定します。
boolean containsValue(Object v) マップに値vが含まれているかを判定します。
V get(Object k)

キーkと関連付いている値Vを返します。

ただし、キーkがマップに存在しない場合はnullを返します。

boolean isEmpty() マップが空かどうかを判定します。
V put(Object k, Object v)

指定されたキーkと値vのセットをマップに追加します。

キーkが新規の場合は追加となり、既に存在している場合は上書きとなります。

V remove(Object k)

指定されたキーkの要素をマップから削除します。

戻り値はキーkが存在する場合は削除された値が、存在しない場合はnullが返ります。

int size()

マップの要素数を返します。

HashMapを生成する

HashMapオブジェクトはnew演算子を使用して以下のように生成します。

 

JDK1.5以降

HashMap<型1, 型2> 変数名 = new HashMap<型1, 型2>();

 

上記方法での生成は、ジェネリクス機能が導入されたJ2SE5.0(JDK1.5)以降に可能です。それ以前の古いバージョンでは、以下の方法で生成します。

 

HashMap 変数名 = new HashMap();

HashMapにデータを追加する

HashMapオブジェクトにデータを追加する場合は、putメソッドを使用します。

 

HashMap<String, String> map = new HashMap<String, String>();

map.put("A001", "Google");
map.put("A002", "Apple");
map.put("A003", "Microsoft");

 

上記例ではHashMapオブジェクトに3つの要素が追加されます。

HashMapのデータを参照する

HashMapオブジェクトのデータを参照する場合は、getメソッドを使用します。

 

System.out.println(map.get("A001"));

 

getメソッドは引数にキーを指定することで該当要素の値を取得します。ただし、指定のキーがマップに存在しない場合はnullを返します。エラーとはなりません。

HashMapのデータを削除する

HashMapオブジェクトのデータを削除する場合は、removeメソッドを使用します。

 

System.out.println(map.remove("A001"));

 

removeメソッドは引数にキーを指定することで該当要素を削除します。メソッドの戻り値には削除された要素の値が返りますが、指定のキーがマップに存在しなかった場合はnullが返ります。こちらもgetメソッド同様、エラーとはなりません。

サンプルプログラム

以下サンプルではHashMapに複数の要素を格納し、格納した要素のキーと値を標準出力に出力します。

 

import java.util.HashMap;

public static void main(String[] args) {

    HashMap<String, String> map = new HashMap<String, String>();

    map.put("P01", "Java");
    map.put("P02", "C#");
    map.put("P03", "PHP");

    for (String key : map.keySet()){
        System.out.println(key + ":" + map.get(key));
    }
}

【実行結果】

P01:Java
P02:C#
P03:PHP
関連記事
外部リンク
- 記事検索 -