SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

作って覚えるJavaプログラミングのススメ

Java入門 (7) - List・Map・Setなどのコレクション・フレームワーク

作って覚えるJavaプログラミングのススメ 第7回

HashMapによるMapの利用

 続いて「Map」を利用してみましょう。Mapの実装としては、「HashMap」というクラスを利用するのが一般的です。これは、キーと保管するオブジェクトをセットにして追加していきます。ただし、ArrayListのように並び順は保障されないので注意が必要です。

値を保管する
[HashMap].put( キー , オブジェクト );
指定したキーの値を取り出す
Object 変数 = [HashMap].get( キー );
指定したキーの値を削除する
[HashMap].remove( キー );
要素数を調べる
int 変数 = [HashMap].size();

 Mapは、特定のキーの値を使ってオブジェクトを保管していき、キーの値を指定してオブジェクトを取り出します。この性格を利用して簡易データベース的な使われ方をされることがあります。

package codezine.java;

import java.util.*;

public class Sample {

    public static void main(String[] args) {
        HashMap map = new HashMap();
        map.put("yamada","taro@mail.co.jp");
        map.put("hanako", "hanako@yamada.com");
        map.put("tuyano", "tuyano@mac.com");
        
        try {
            String key = args[0];
            String value = (String)map.get(key);
            System.out.println(key + ": " + value);
        } catch(ArrayIndexOutOfBoundsException ex){
            System.out.println("引数の値が取り出せませんでした。");
        }
    }
}
実行すると、実行時に渡した引数の名前を調べ、保管してあったメールアドレスを表示する。
実行すると、実行時に渡した引数の名前を調べ、保管してあったメールアドレスを表示する。

 ここではHashMapにダミーの値をいくつか保管しておき、実行したときに渡された引数を使って特定の値を取り出し表示しています。例えば、

java codezine.java.Sample tuyano

 このように実行すると、「tuyano: tuyano@mac.com」というように、入力した人のメールアドレスが表示されます。

mainの引数の正体

 ここでは、mainメソッドの引数にあるString配列を使っています。「これ、一体、何のためにあるんだ?」と思っていた人もきっといたことでしょう。これは、Javaコマンドでプログラムを実行する際に書いてあった引数の値が渡されるのです。例えば、

java 実行クラス 値1 値2 値3

 こんな具合に書いて実行したとすると、args[0]には「値1」が、args[1]には「値2」、args[2]には「値3」が収められるようになっているのです。プログラムを実行する際に、必要な値をプログラムに渡したいときに用いられます。ただし、引数に値が入っていないと、ArrayIndexOutOfBoundsExceptionという例外が発生してしまいますので、tryを使って例外処理をしたうえでargsの値を取り出すようにするとよいでしょう。

 ここでは、引数を使って調べたい人間の名前を渡します。そして、map.get(key)で、その引数の値をキーに指定して値を取り出します。このとき注意すべきは「取り出した値のキャスト」です。HashMapも、やっぱり値はObjectにキャストされて取り出されるので、取り出したものを(String)としてテキストにキャストしておく必要があります。

 HashMapでは、キーの値を完全に指定してやらないといけません。例えば、"tuyano"というキーの値は、"tuya"などでは取り出せないのです。ですから、本格的なデータベースとして使えるわけではありません。

次のページ
HashSetによるSetの利用

この記事は参考になりましたか?

作って覚えるJavaプログラミングのススメ連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2385 2008/04/17 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー