Hallo guys, kemaren kita sudah bahas bagaimana cara menemukan sebuah data pada list. Nah hari ini kita akan belajar bagaimana cara memanipulasi data tersebut misalnya ada sebagian data yang kita hapus.
Berikut ini code yang bisa kamu gunakan, ketika harus menghapus sebuah data pada list :
fun MutableList<ActionButton>.removeKey() : List<ActionButton> {
val iterator = this.iterator()
while (iterator.hasNext()) {
val item = iterator.next()
if (item.key == "cancel") {
iterator.remove()
}
}
return this
}
Pada fungsi ini kita melihat bahwa data dengan key cancel akan dihapus dari list, jika kamu ingin memanggil fungsi ini. Kamu cukup menambahkannya seperti ini :
val listTemp = item.actionButtons.toMutableList().removeKeyCancel()
Perlu diingat list harus diconvert ke mutablelist terlebih dahulu agar data bisa dimodifikasi dan inilah sample data yang kami gunakan.
data class ActionButton(
val key: String = "",
val label: String = ""
)
val actionButtons: List<ActionButton> = listOf(
ActionButton(key = "cancel", label = "Cancel")
)
Masih repot ya? sebenarnya ada beberapa cara lagi yang bisa kamu gunakan, misalnya dengan melakukan compare nilai :
this.remove(ActionButton("cancel", "Cancel"))
atau kamu bisa hapus data berdasarkan positionnya data tersebut, tentu saja kamu harus mencari tahu data yang kamu hapus berada diposisi keberapa.
myList.removeAt(0)
dan jika kamu perlu melakukan reset (menghapus semua data) pada suatu list, kamu bisa gunakan fungsi ini :
myList.clear()
Hm.. sepertinya cara pertama masih sangat repot ya? jangan khawatir, bagaimana jika kalian menggunakan fungsi ini :
myList.removeIf { actionButton-> actionButton.key == "cancel"}
Wah, kok bisa jadi easy banget ya? ya itulah kotlin karena punya ektensionnya sendiri, oh ya alternatif terakhir kamu bisa gunakan ini ya :
val myListTemp = myList.filter { actionButton-> actionButton.key == "cancel" }
Nah itulah beberapa fungsi yang bisa kamu gunakan untuk menghapus suatu data pada list.
Semoga bermanfaat.