初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
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になったのがわかります。