【Android】連想配列の扱い方
こんにちは。
今回は忘れがちなのでAndroid(Java)での連想配列の扱い方についてメモしておきます。
連想配列はHashMapというクラスを用いて作成します。
以下ソースコードです。
// Map<Keyの型, 値の型>となる。 Map<String, String> data = new HashMap<String, String>(); // 連想配列に格納 // データを連想配列に格納 data.put("key", "value"); // 連想配列からデータを取得 String str = data.get("key") // 連想配列から全てのKeyを取得 data.keySet() // 連想配列から全ての値を取得 data.values() // foreach()みたいな動作にする // Map.Entry<keyの型, 値の型>とする for(Map.Entry<String, String> e : data.entrySet()) { System.out.println(e.getKey() + " : " + e.getValue()); } // keyが存在しているか確認 if (data.containsKey("キー1")){ System.out.println("キー1=" + data.get("キー1")); }else{ System.out.println("指定したキーは存在しません"); } // 配列に入れた順番を維持する方法 data = new LinkedHashMap<String, String>();
以上です。割と簡単ですね。
次に連想配列を二次元配列で扱ってみたいと思います。
やり方としては、HasMapの型の一つに、Mapを入れるという考え方です。
以下、具体的なコードになります。
HashMap<String, String> data = new HashMap<String, String>(); // 一次元配列。問題データ1問を格納 Map<Integer, HashMap<String, String>> rootData = new HashMap<Integer, HashMap<String, String>>(); // 二次元配列。全ての問題データを格納 data.put("key", "value"); // データを格納 rootData.put("key", data); // 二次元配列にデータを格納 for (int i = 0; i < roootData.length(); i++){ rootData.get(i).get("key"); // データを取得 }
というようになります。
二次元配列も、慣れれば割と簡単ですね。
今回は以上になります。
それでは。