Je suis venu ici en voulant juste un exemple d'utilisation SparseArray
. Ceci est une réponse supplémentaire à cela.
Créer un SparseArray
SparseArray<String> sparseArray = new SparseArray<>();
A SparseArray
mappe des entiers à certains Object
, vous pouvez donc remplacer String
dans l'exemple ci-dessus par n'importe quel autre Object
. Si vous mappez des entiers à des entiers, utilisez SparseIntArray
.
Ajouter ou mettre à jour des éléments
Utilisez put
(ou append
) pour ajouter des éléments au tableau.
sparseArray.put(10, "horse");
sparseArray.put(3, "cow");
sparseArray.put(1, "camel");
sparseArray.put(99, "sheep");
sparseArray.put(30, "goat");
sparseArray.put(17, "pig");
Notez que les int
clés n'ont pas besoin d'être en ordre. Cela peut également être utilisé pour modifier la valeur d'une int
clé particulière .
Supprimer des éléments
Utilisez remove
(ou delete
) pour supprimer des éléments du tableau.
sparseArray.remove(17); // "pig" removed
Le int
paramètre est la clé entière.
Rechercher des valeurs pour une clé int
Utilisez get
pour obtenir la valeur d'une clé entière.
String someAnimal = sparseArray.get(99); // "sheep"
String anotherAnimal = sparseArray.get(200); // null
Vous pouvez utiliser get(int key, E valueIfKeyNotFound)
si vous souhaitez éviter d'obtenir null
des clés manquantes.
Itérer sur les éléments
Vous pouvez utiliser keyAt
et valueAt
certains index pour parcourir la collection car le SparseArray
maintient un index distinct distinct des int
clés.
int size = sparseArray.size();
for (int i = 0; i < size; i++) {
int key = sparseArray.keyAt(i);
String value = sparseArray.valueAt(i);
Log.i("TAG", "key: " + key + " value: " + value);
}
// key: 1 value: camel
// key: 3 value: cow
// key: 10 value: horse
// key: 30 value: goat
// key: 99 value: sheep
Notez que les clés sont classées par valeur croissante, et non dans l'ordre dans lequel elles ont été ajoutées.