Я прийшов сюди просто бажаючи приклад, як користуватися 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
Зауважте, що ключі впорядковуються у зростаючому значенні, а не в тому порядку, в якому вони були додані.