Я пришел сюда просто, чтобы получить пример использования SparseArray. Это дополнительный ответ для этого.
Создать SparseArray
SparseArray<String> sparseArray = new SparseArray<>();
A 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
Обратите внимание, что ключи упорядочены по возрастанию, а не в том порядке, в котором они были добавлены.