Sono venuto qui volendo solo un esempio di come usare SparseArray
. Questa è una risposta supplementare per questo.
Crea uno SparseArray
SparseArray<String> sparseArray = new SparseArray<>();
A SparseArray
mappa numeri interi per alcuni Object
, in modo da poter sostituire String
nell'esempio sopra con qualsiasi altro Object
. Se si stanno mappando numeri interi su numeri interi, utilizzare SparseIntArray
.
Aggiungi o aggiorna elementi
Utilizzare put
(o append
) per aggiungere elementi all'array.
sparseArray.put(10, "horse");
sparseArray.put(3, "cow");
sparseArray.put(1, "camel");
sparseArray.put(99, "sheep");
sparseArray.put(30, "goat");
sparseArray.put(17, "pig");
Si noti che int
non è necessario che le chiavi siano in ordine. Questo può anche essere usato per cambiare il valore in una particolare int
chiave.
Rimuovi elementi
Utilizzare remove
(o delete
) per rimuovere elementi dall'array.
sparseArray.remove(17); // "pig" removed
Il int
parametro è la chiave intera.
Valori di ricerca per una chiave int
Utilizzare get
per ottenere il valore per una chiave intera.
String someAnimal = sparseArray.get(99); // "sheep"
String anotherAnimal = sparseArray.get(200); // null
È possibile utilizzare get(int key, E valueIfKeyNotFound)
se si desidera evitare di ottenere null
chiavi mancanti.
Scorri gli oggetti
È possibile utilizzare keyAt
e valueAt
alcuni indici per scorrere la raccolta perché SparseArray
mantiene un indice separato distinto dalle int
chiavi.
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
Si noti che le chiavi sono ordinate in ordine crescente, non nell'ordine in cui sono state aggiunte.