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