Saya datang ke sini hanya ingin contoh cara menggunakan SparseArray
. Ini adalah jawaban tambahan untuk itu.
Buat SparseArray
SparseArray<String> sparseArray = new SparseArray<>();
Sebuah SparseArray
peta bilangan bulat ke beberapa Object
, sehingga Anda dapat mengganti String
dalam 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 int
tombol tidak perlu berurutan. Ini juga dapat digunakan untuk mengubah nilai pada int
kunci tertentu .
Hapus item
Gunakan remove
(atau delete
) untuk menghapus elemen dari array.
sparseArray.remove(17); // "pig" removed
The int
parameter adalah kunci integer.
Nilai pencarian untuk kunci int
Gunakan get
untuk 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 null
kunci yang hilang.
Iterate atas item
Anda dapat menggunakan keyAt
dan valueAt
beberapa indeks untuk mengulang koleksi karena SparseArray
mempertahankan indeks terpisah berbeda dari int
tombol.
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.