Я прийшов сюди просто бажаючи приклад, як користуватися SparseArray
. Це додаткова відповідь на це.
Створіть SparseArray
SparseArray<String> sparseArray = new SparseArray<>();
SparseArray
Відображає цілі числа в деяких Object
, так що ви могли б замінити String
в наведеному вище прикладі з будь-яким іншим Object
. Якщо ви відображаєте цілі числа до цілих чисел, тоді використовуйте SparseIntArray
.
Додавання або оновлення елементів
Використовуйте put
(або append
), щоб додати елементи до масиву.
sparseArray.put(10, "horse");
sparseArray.put(3, "cow");
sparseArray.put(1, "camel");
sparseArray.put(99, "sheep");
sparseArray.put(30, "goat");
sparseArray.put(17, "pig");
Зверніть увагу, що int
ключі не повинні бути в порядку. Це також можна використовувати для зміни значення на певному int
ключі.
Видаліть елементи
Використовуйте remove
(або delete
) для видалення елементів з масиву.
sparseArray.remove(17); // "pig" removed
int
Параметр є ключовим цілим числом.
Значення пошуку ключа int
Використовуйте get
для отримання значення для деякого цілого ключа.
String someAnimal = sparseArray.get(99); // "sheep"
String anotherAnimal = sparseArray.get(200); // null
Ви можете використовувати, get(int key, E valueIfKeyNotFound)
якщо хочете уникнути отримання null
відсутніх ключів.
Ітерація над предметами
Ви можете використовувати keyAt
іvalueAt
деякий індекс, щоб провести цикл через колекцію, оскільки SparseArray
підтримує окремий індекс, відмінний від int
клавіш.
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
Зауважте, що ключі впорядковуються у зростаючому значенні, а не в тому порядку, в якому вони були додані.