data class RideDate(var enddate: String? = null,var startdate: String? = null)
fun main(args: Array<String>) {
var listOfRideDate = mutableListOf<RideDate>();
val date1 = RideDate()
date1.startdate = "2018-11-05 00:00:00 +0000"
date1.enddate = "2018-11-06 23:59:59 +0000"
listOfRideDate.add(date1)
val date2 = RideDate()
date2.startdate = "2020-01-20 00:00:00 +0000"
date2.enddate = "2020-02-20 00:00:00 +0000"
listOfRideDate.add(date2)
val date3 = RideDate()
date3.startdate = "2020-03-20 00:00:00 +0000"
date3.enddate = "2020-03-20 00:00:00 +0000"
listOfRideDate.add(date3)
val date4 = RideDate()
date4.startdate = "2020-04-20 00:00:00 +0000"
date4.enddate = "2020-04-20 00:00:00 +0000"
listOfRideDate.add(date4)
val date5 = RideDate()
date5.startdate = "2020-11-20 00:00:00 +0000"
date5.enddate = "2020-11-20 00:00:00 +0000"
listOfRideDate.add(date5)
for (i in 0..listOfRideDate.size -1) {
// we have to remove 2018-11-05 00:00:00 +0000 and 2018-11-06 23:59:59 +0000 from list
println(listOfRideDate.get(i).startdate + " and " + listOfRideDate.get(i).enddate)
}
}
This is my data class and the main method I have added item RideDate of startDate and endDate manually I want delete item dynamically if data contains date1.startdate = "2018-11-05 00:00:00 +0000" date1.enddate = "2018-11-06 23:59:59 +0000"
so that I can ignore it please help me how to delete the item from array list in kotlin
Kotlin List – Remove an Element. We can modify the contents of a List only if the list is mutable. To remove a specific element from a Mutable List in Kotlin, call remove() function on this list object and pass the element, that we would like to remove, as argument.
You can use removeAll to remove element from original list if it matches the predicate.
listOfRideDate.removeAll {
it.startdate == "2018-11-05 00:00:00 +0000" && it.enddate == "2018-11-06 23:59:59 +0000"
}
Or you can filter by creating a new list with filtered items as suggested by Johann Kexel
val filtertedList = listOfRideDate.filter {
it.startdate == "2018-11-05 00:00:00 +0000" && it.enddate == "2018-11-06 23:59:59 +0000"
}
You can use filter
in your case
val filtertedList = listOfRideDate.filter { element -> someLogik(element)}
Refer also to the following page
Filtering Kotlinlang
Like this:
loop@ for (i in 0 until listOfRideDate.size) {
// we have to remove 2018-11-05 00:00:00 +0000 and 2018-11-06 23:59:59 +0000 from list
if (listOfRideDate.get(i).startdate == "2018-11-05 00:00:00 +0000" && listOfRideDate.get(i).enddate == "2018-11-06 23:59:59 +0000"){
listOfRideDate.removeAt(i)
break@loop
}
}
or
listOfRideDate.removeIf {
it.startdate == "2018-11-05 00:00:00 +0000" && it.enddate == "2018-11-06 23:59:59 +0000"
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With