Sering kali kita diharuskan mencari data pada suatu list dikarenakan suatu hal, misalnya return data yang umum sedangkan kebutuhannya berbeda (web dan apps).
Misalnya kita punya data seperti ini :
val myList = listOf(1, 2, 3, 4, 5)
Mungkin muncul pertanyaan, bagaimana cara kita menemukan suatu data didalamnya, misalnya ingin mengetahui apakah ada data 3 pada list tersebut? Jika menggunakan bahasa kotlin ada beberapa cara yang bisa kamu coba, diantara :
val foundItem = myList.find { it == 3 }
println(foundItem) // Output: 3
val filteredList = myList.filter { it == 3 }
println(filteredList) // Output: [3]
Jika data tidak ditemukan maka find akan mengembalikan nilai null sedangkan filter akan mengembalikan nilai []. Bagaimana jika datanya String? jika datanya berupa String, kamu bisa menggunakan cara ini :
val myList = listOf("apple", "banana", "orange")
val index = myList.indexOf("banana")
println(index) // Output: 1
Dengan menggunakan indexOf, jika data tidak ditemukan maka dia akan mengembalikan nilai -1.
Nah itulah cara mencari data jika list hanya berupa 1 data, bagaimana jika kita harus mencari data dengan model? beginilah kira-kira :
data class Person(val name: String, val age: Int)
val personList = listOf(
Person("John", 25),
Person("Sarah", 30),
Person("Michael", 35)
)
val foundPerson = personList.find { it.name == "Sarah" }
println(foundPerson) // Output: Person(name=Sarah, age=30)
atau kamu bisa gunakan cara seperti ini :
val filteredList = personList.filter { it.age > 30 }
println(filteredList) // Output: [Person(name=Michael, age=35)]
Bagaimana? Ez kan ya? Yuk dota 😀
Jika mau ingin request code, bisa coba disini ya