Map

Listタイプのコレクションがインデックス整数値でエレメントを管理していましたが、
Listタイプは必ずインデックス番号は0から始まりました。つまり番号を自由につけることが出来ませんでした。

しかしMapタイプのコレクションはオブジェクトをキーとペア-で管理することが出来ます。

キーには好きな値をつけることが出来ますが、基本的にはわかりやすい文字列をつけます。

主なMapクラス

クラス
説明
HashMap Mapインタフェースの機能を実装したものでnull値とnullキーを用いることが可能
Hashtable JDK1.0から提供されているクラスで、J2SDK1.2以降ではMap系に分類されて存在している。
基本的にはHashMapと機能は同じ。ただキーと値にnullは使用できない
TreeMap ソートが行うことができるHashMapと考えることができるクラス

主なメソッド

メソッド
説明
put(Object key,Object value) 指定されたキー(key)と値(value)をペア-にしてコレクションに登録
get(Object key) 引数に指定されたキー(key)に紐付けられているエレメントのオブジェクトの参照を返す
remove(Object key) 引数で指定されたキー(key)に紐付けられたエレメントを削除
size() コレクションに登録されているエレメント数を返す

サンプルプログラム(Sample93.java)

//import宣言
import java.util.*;
class Sample93{
    public static void main(String args[]){
  //HashMap のオブジェクト生成
   HashMap ha = new HashMap();

   //HashMapオブジェクトにエレメントの追加
    ha.put("名前","山田");
    ha.put("年齢",new Integer(30));
    ha.put("出身地","福岡");

    System.out.println("私の名前は" + ha.get("名前") + "です");
    System.out.println("今年で " + ha.get("年齢") + "になります");
    System.out.println("出身地は" + ha.get("出身地") + "です");
} }

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

スクール・通信講座の徹底比較!一括資料請求【無料】


コンパイル・実行します。

put(Object key,Object value)メソッドを使いエレメントを追加しています。
また、get(Object key)を使いエレメントを参照しています。

サンプルプログラム(Sample93_1.java)キーと値にnullを使うと

//import宣言
import java.util.*;
class Sample93_1{
    public static void main(String args[]){

//HashMap のオブジェクト生成
   HashMap ha = new HashMap();
   //HashMapオブジェクトにエレメントの追加
    ha.put(null,null);
    ha.put("年齢",new Integer(30));
    ha.put("出身地","福岡");

    System.out.println("私の名前は" + ha.get(null) + "です");
    System.out.println("今年で " + ha.get("年齢") + "になります");
    System.out.println("出身地は" + ha.get("出身地") + "です");

    }

}
プログラムをコピーする場合すべて選択をクリックしてください。

サンプルプログラム(Sample93_2.java)

//import宣言
import java.util.*;
class Sample93_2{
    public static void main(String args[]){
//Hashtable のオブジェクト生成
   Hashtable ha = new Hashtable();

   //Hashtableオブジェクトにエレメントの追加
    ha.put(null,null);
    ha.put("年齢",new Integer(30));
    ha.put("出身地","福岡");

    System.out.println("私の名前は" + ha.get(null) + "です");
    System.out.println("今年で " + ha.get("年齢") + "になります");
    System.out.println("出身地は" + ha.get("出身地") + "です");
    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

上記2つのプログラムをコンパイル・実行してみます。

Sample93_1はHashMapクラスでSample93_2はHashtableクラスです。

最初に述べたとおりHashMapクラスはキーと値にnull値を使用可能です。
しかしHashtableクラスのほうはキーと値にnull値は使用できません。
このような例外が送出されます。

ここがHashMapクラスとHashtableクラスの大きな違いになります。

サンプルプログラム(Sample93_3.java)キーの重複

//import宣言
import java.util.*;
class Sample93_3{
    public static void main(String args[]){
 //HashMap のオブジェクト生成
   HashMap ha = new HashMap();

   //HashMapオブジェクトにエレメントの追加
    ha.put("名前","山田");
    ha.put("年齢",new Integer(30));
    ha.put("出身地","福岡");

    System.out.println("私の名前は" + ha.get("名前") + "です");
    System.out.println("今年で " + ha.get("年齢") + "になります");
    System.out.println("出身地は" + ha.get("出身地") + "です");
    System.out.println("-----------------------------------");
   //キーの重複
   ha.put("年齢",new Integer(35));
    System.out.println("実は本当の年齢は" + ha.get("年齢") + "でした");
} }

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

このようにキーを重複して使うと新しく上書きされます。
ここでは年齢のキーが書き換えられて値が35になったのがわかります。

ページのトップへ戻る