今までHashMapを使っていたのだけど、SparseArray のが早いよってlintに言われてたので、少し調べた。
SparseArray は、HashMapと同じような使い方をするが、Keyとなるのがintで、データ件数が100件を超える辺りから早くなるらしい。
詳しいことは
http://thinking-megane.blogspot.jp/2012/06/androidsparsearray.html
にあるので、要点だけ言うと
- getに関してはHashMapに譲るが、putが早く、put,get合わせると、総合的にSparseArrayが早い
しかも
- GCの発生頻度が低く、HashMapより優れている
1件のデータに関して1回のput,getというのは乱暴であるが、GC的な観点からいうとSparseArrayの方がいいだろう。
というわけで、書きなおした。(ついでに Utils クラスに移動させた。)
/**
* エリア情報、パス情報を読み込む
*
* @param resources
* @param iPhase
* 面数
*/
public static SparseArray