【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 にまとめてあります