LoginSignup
214
207

More than 5 years have passed since last update.

Androidに最適化されたJavaクラス一覧

Last updated at Posted at 2014-08-24

はじめに

Androidではモバイル端末での処理に最適化されたいくつかの代替クラスが用意されています。
ほとんどがHashMap関係のメモリ消費を抑えるためのものですが、Android Developersにも代替クラスをまとめたページはないようなので、知っている範囲でまとめてみました。

SparseArray

似ている機能:HashMap<Integer,T>
SparseArrayはAndroid向けにパフォーマンスが改良されたHashMap<Integer,T>の代替クラス。
Supportライブラリに最新のSparseArrayと同じ実装になったSparseArrayCompatがある。
http://developer.android.com/reference/android/support/v4/util/SparseArrayCompat.html

LongSparseArray

似ている機能:HashMap<Long,T>
API level 16から追加された、keyがintからlongになったSparseArray
Supportライブラリにもある。
http://developer.android.com/reference/android/support/v4/util/LongSparseArray.html

SparseBooleanArray

似ている機能:HashMap<Integer,Boolean>
valueがboolean型のSparseArray
HashMap<Integer,Boolean>の置き換えができるが、value型がBooleanではなくbooleanなので注意。
http://developer.android.com/reference/android/util/SparseBooleanArray.html

SparseIntArray

似ている機能:HashMap<Integer,Integer>
valueがint型のSparseArray
HashMap<Integer,Integer>の置き換えができるが、value型がIntegerではなくintなので注意。
http://developer.android.com/reference/android/util/SparseIntArray.html

SparseLongArray

似ている機能:HashMap<Integer,Long>
API level 18から追加された、valueがlong型のSparseArray
HashMap<Integer,Long>の置き換えができるが、value型がLongではなくlongなので注意。
Supporライブラリには存在しない。
https://developer.android.com/reference/android/util/SparseLongArray.html

ArrayMap

似ている機能:HashMap<K,V>
API level 19で追加された、Map<K,V>の新しい実装。
HashMapよりもメモリ効率が良い。
Supportライブラリにもある。
http://developer.android.com/reference/android/support/v4/util/ArrayMap.html

SimpleArrayMap

似ている機能:HashMap<K,V>
Supportライブラリにしか存在しない。
ArrayMapからMapインターフェイスの実装を外したバージョン。
…というよりも、ArrayMapがこのクラスにMapの実装を追加している。
おそらくこちらのほうが軽い。
http://developer.android.com/reference/android/support/v4/util/SimpleArrayMap.html

FloatMath

似ている機能:Math(一部)
float専用の数値演算処理クラス。
javaのMathに比べて速いが、肝心のメソッドが少ない…。
Mathより遅い場合もあったのでAPI 23でdeprecatedになりました(AOSP Issue 36199)。
http://developer.android.com/reference/android/util/FloatMath.html

Pair

似ている機能:AbstractMap.SimpleEntry<K,V>
key,valueの2つの値を任意の型で保持することができるクラス。
AndroidSDK上ではPairのほうが先に実装されているが、AbstractMap.SimpleEntry<K,V>とほぼ同様。
http://developer.android.com/reference/android/util/Pair.html

214
207
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
214
207