Furudateのブログ

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

【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、ということらしいです。
値にオブジェクトを格納するときは、こちらのほうが良いみたいですね。

ということで、連想配列の二次元配列を使う際には、こちらを使いましょう!

以上です。
それでは。