Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

【Android】連想配列の扱い方

こんにちは。

今回は忘れがちなのでAndroidJava)での連想配列の扱い方についてメモしておきます。

連想配列は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"); // データを取得
}

というようになります。

二次元配列も、慣れれば割と簡単ですね。


今回は以上になります。
それでは。


※2013/07/04追記

二次元配列は、上のようにやると警告文が出ます。
これの直し方については、こちらを参照してみてください!