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 SparseArraymappe des entiers à certains Object, vous pouvez donc remplacer Stringdans 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 intclés n'ont pas besoin d'être en ordre. Cela peut également être utilisé pour modifier la valeur d'une intclé particulière .
Supprimer des éléments
Utilisez remove(ou delete) pour supprimer des éléments du tableau.
sparseArray.remove(17); // "pig" removed
Le intparamètre est la clé entière.
Rechercher des valeurs pour une clé int
Utilisez getpour 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 nulldes clés manquantes.
Itérer sur les éléments
Vous pouvez utiliser keyAtet valueAtcertains index pour parcourir la collection car le SparseArraymaintient un index distinct distinct des intclé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.