Saya datang ke sini hanya ingin contoh cara menggunakan SparseArray. Ini adalah jawaban tambahan untuk itu.
Buat SparseArray
SparseArray<String> sparseArray = new SparseArray<>();
Sebuah SparseArraypeta bilangan bulat ke beberapa Object, sehingga Anda dapat mengganti Stringdalam contoh di atas dengan yang lainnya Object. Jika Anda memetakan bilangan bulat ke bilangan bulat, gunakan SparseIntArray.
Tambahkan atau perbarui item
Gunakan put(atau append) untuk menambahkan elemen ke 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");
Perhatikan bahwa inttombol tidak perlu berurutan. Ini juga dapat digunakan untuk mengubah nilai pada intkunci tertentu .
Hapus item
Gunakan remove(atau delete) untuk menghapus elemen dari array.
sparseArray.remove(17); // "pig" removed
The intparameter adalah kunci integer.
Nilai pencarian untuk kunci int
Gunakan getuntuk mendapatkan nilai untuk beberapa kunci integer.
String someAnimal = sparseArray.get(99); // "sheep"
String anotherAnimal = sparseArray.get(200); // null
Anda dapat menggunakan get(int key, E valueIfKeyNotFound)jika Anda ingin menghindari nullkunci yang hilang.
Iterate atas item
Anda dapat menggunakan keyAtdan valueAtbeberapa indeks untuk mengulang koleksi karena SparseArraymempertahankan indeks terpisah berbeda dari inttombol.
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
Perhatikan bahwa kunci dipesan dalam nilai menaik, bukan dalam urutan yang ditambahkan.