【Java】ListにMapを格納する手順

この記事ではJavaのListにMapを格納する手順について解説します。
ListにMapを格納する手順
JavaのListにMapを格納するには以下の手順にて実施可能です。
- List<map<string, object>> で初期化する
- 格納用のMapを用意する
- addメソッドでListにMapを格納する
① List<map<string, object>>についてはListに追加する値についてはMapを指定するといった意味となります。
List<Map<String,Object>>ListMap = new ArrayList<Map<String,Object>>(); System.out.println(ListMap); // 実行結果 []
②格納用のMapを用意します。List<Map<String,Object>>としているのでMapの型はMap<String,Object>とする必要があります。
Map<String,Object>Map = new HashMap<String,Object>();
// テストのため、任意の値を代入
Map.put("key1","value1");
Map.put("key2","value2");
System.out.println(Map);
// 実行結果
{key1=value1, key2=value2}
③Listのため、要素を追加するaddメソッドでListにMapを格納することができます。ListにMapを保持するのは複数件のケースが多いため、以下では2件分追加します。
ListMap.add(new HashMap<String,Object>(Map));
ListMap.add(new HashMap<String,Object>(Map));
System.out.println(ListMap.size());
System.out.println(ListMap);
// 実行結果
2
[{key1=value1, key2=value2}, {key1=value1, key2=value2}]
Listの件数は、Mapを全体を1件としてます。※キー値や値の数ではないことを確認できます。
①~③を通しで実行したサンプルプログラムは以下となります。
// 初期値にカラを代入した初期化
List<Map<String,Object>>ListMap = new ArrayList<Map<String,Object>>();
System.out.println(ListMap);
Map<String,Object>Map = new HashMap<String,Object>();
// テストのため、任意の値を代入
Map.put("key1","value1");
Map.put("key2","value2");
System.out.println(Map);
ListMap.add(new HashMap<String,Object>(Map));
ListMap.add(new HashMap<String,Object>(Map));
System.out.println(ListMap.size());
System.out.println(ListMap);
// 実行結果
[]
{key1=value1, key2=value2}
2
[{key1=value1, key2=value2}, {key1=value1, key2=value2}]
List<Map<String,Object>>からデータを取り出し、編集、再セットする
上で記載のとおり、Listの型がMap<String,Object>であること以外通常のListと変わりません。
そのため、取り出しはgetメソッド、Mapをputで編集し、setで再セットすることで、取り出し⇒編集⇒再セットすることができます。
// 初期値にカラを代入した初期化
List<Map<String,Object>>ListMap = new ArrayList<Map<String,Object>>();
Map<String,Object>Map = new HashMap<String,Object>();
Map.put("key1","value1");
Map.put("key2","value2");
ListMap.add(new HashMap<String,Object>(Map));
ListMap.add(new HashMap<String,Object>(Map));
//データを取り出し、編集、再セット前
System.out.println(ListMap);
// 0件目のListのデータを取得
Map<String,Object>取得Map = ListMap.get(0);
System.out.println(取得Map);
// Mapの値を置き換え
取得Map.put("key1","置き換え後value1");
System.out.println(取得Map);
// MapのListに再セットする
ListMap.set(0, 取得Map);
//データを取り出し、編集、再セット後
System.out.println(ListMap);
// 実行結果
[{key1=value1, key2=value2}, {key1=value1, key2=value2}]
{key1=value1, key2=value2}
{key1=置き換え後value1, key2=value2}
[{key1=置き換え後value1, key2=value2}, {key1=value1, key2=value2}]

Javaの記事の一覧はJava にまとめてあります
