
// キー
String[] ccLTD = {"fr", "kr", "jp", "de", "za"};
// 値
String[] area = {"フランス", "韓国", "日本", "ドイツ", "南アフリカ"};
for (int i = 0; i < 5; i++) {
exMap.put(ccLTD[i], area[i]); // Map に要素を追加
}
System.out.println(exMap); // Map の要素表示
結果はこのようになります。
| Map | 要素の並び | 備考 |
|---|---|---|
| HashMap | kr=韓国,za=南アフリカ,de=ドイツ,jp=日本,fr=フランス (ランダム) |
並びは不定 |
| TreeMap | de=ドイツ,fr=フランス,jp=日本,kr=韓国,za=南アフリカ | キーの昇順に並ぶ |
| LinkedHashMap | fr=フランス,kr=韓国,jp=日本,de=ドイツ,za=南アフリカ | 追加した順に並ぶ |
Map map = new HashMap(); Integer i1 = new Integer(1); // 整数1を表すオブジェクト Integer i2 = new Integer(1); // i1と値は同じだが別オブジェクト map.put(i1, "1番目"); map.put(i2, "2番目"); map.get(i1); // 「2番目」が返るHashMapであれば、2回のputメソッド呼び出しでは同一のキーへ値をマップしたことになるので、 最初の値が2番目の値で上書きされて最後のgetメソッドは「2番目」を返します。
Map map = new IdentityHashMap(); Integer i1 = new Integer(1); // 整数1を表すオブジェクト Integer i2 = new Integer(1); // i1と値は同じだが別オブジェクト map.put(i1, "1番目"); map.put(i2, "2番目"); map.get(i1); // 「1番目」が返るIdentityHashMapでは、オブジェクトi1、i2は別物と見なされますので、 2番目のputメソッドで値が上書きされることなく最後のgetメソッドは「1番目」を返します。