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 SparseArraymappa numeri interi per alcuni Object, in modo da poter sostituire Stringnell'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 intnon è necessario che le chiavi siano in ordine. Questo può anche essere usato per cambiare il valore in una particolare intchiave.
Rimuovi elementi
Utilizzare remove(o delete) per rimuovere elementi dall'array.
sparseArray.remove(17); // "pig" removed
Il intparametro è la chiave intera.
Valori di ricerca per una chiave int
Utilizzare getper 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 nullchiavi mancanti.
Scorri gli oggetti
È possibile utilizzare keyAte valueAtalcuni indici per scorrere la raccolta perché SparseArraymantiene un indice separato distinto dalle intchiavi.
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.