【Android】HashMapとSparseArray
こんばんは。
前回のエントリーで書いたように、HashMapの二次元配列をやろうとしたとき、警告が出ました。
やろうとしたこと:
HashMap<String, String> data = new HashMap<String, String>(); // 一次元配列。 Map<Integer, HashMap<String, String>> rootData = new HashMap<Integer, HashMap<String, String>>();
警告:
Use new SparseArray<HashMap<String, String>>(...) instead for better performance
警告内容としては、SparseArray使ったほうがパフォーマンスいいよーっていうことですね。
なので以下のようにすると、警告文が消えました。
SparseArray<HashMap<String, String>> rootData = new SparseArray<HashMap<String, String>>();
使い方はHashMapと変わりません。
これでソースコード的には解決ですが、SparseArrayって何でしょう?
これは簡単に言えば、キーにintを利用することを前提としたHashMap、ということらしいです。
値にオブジェクトを格納するときは、こちらのほうが良いみたいですね。
ということで、連想配列の二次元配列を使う際には、こちらを使いましょう!
以上です。
それでは。