Ich kam hierher und wollte nur ein Beispiel für die Verwendung SparseArray
. Dies ist eine ergänzende Antwort darauf.
Erstellen Sie ein SparseArray
SparseArray<String> sparseArray = new SparseArray<>();
A SparseArray
ordnet einige Ganzzahlen zu Object
, sodass Sie sie String
im obigen Beispiel durch andere ersetzen können Object
. Wenn Sie Ganzzahlen Ganzzahlen zuordnen, verwenden SieSparseIntArray
.
Elemente hinzufügen oder aktualisieren
Verwenden Sie put
(oder append
), um dem Array Elemente hinzuzufügen.
sparseArray.put(10, "horse");
sparseArray.put(3, "cow");
sparseArray.put(1, "camel");
sparseArray.put(99, "sheep");
sparseArray.put(30, "goat");
sparseArray.put(17, "pig");
Beachten Sie, dass die int
Schlüssel nicht in Ordnung sein müssen. Dies kann auch verwendet werden, um den Wert an einem bestimmten int
Schlüssel zu ändern .
Teile entfernen
Verwenden Sie remove
(oder delete
), um Elemente aus dem Array zu entfernen.
sparseArray.remove(17); // "pig" removed
Der int
Parameter ist der Ganzzahlschlüssel.
Suchwerte für einen int-Schlüssel
Verwenden Sie get
diese Option , um den Wert für einen Ganzzahlschlüssel abzurufen.
String someAnimal = sparseArray.get(99); // "sheep"
String anotherAnimal = sparseArray.get(200); // null
Sie können verwenden, get(int key, E valueIfKeyNotFound)
wenn Sie vermeiden möchten, null
nach fehlenden Schlüsseln zu suchen.
Iterieren Sie über die Elemente
Sie können keyAt
und valueAt
einige Indizes verwenden, um die Sammlung zu durchlaufen, da die SparseArray
einen separaten Index verwaltet, der sich von den int
Schlüsseln unterscheidet.
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
Beachten Sie, dass die Schlüssel in aufsteigender Reihenfolge sortiert sind und nicht in der Reihenfolge, in der sie hinzugefügt wurden.