如何从kotlin中的数组列表中删除项 数据类RideDate(变量enddate:String?=null,变量startdate:String?=null) 趣味主线(args:Array){ var listOfRideDate=mutableListOf(); val date1=RideDate() date1.startdate=“2018-11-05 00:00:00+0000” date1.enddate=“2018-11-06 23:59:59+0000” listOfRideDate.add(日期1) val date2=RideDate() date2.startdate=“2020-01-20 00:00:00+0000” date2.enddate=“2020-02-20 00:00:00+0000” listOfRideDate.add(日期2) val date3=RideDate() date3.startdate=“2020-03-20 00:00:00+0000” date3.enddate=“2020-03-20 00:00:00+0000” listOfRideDate.add(日期3) 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(日期5) 对于(0..listOfRideDate.size-1中的i){ //我们必须从列表中删除2018-11-05 00:00:00+0000和2018-11-06 23:59:59+0000 println(listOfRideDate.get(i).startdate+”和“+listOfRideDate.get(i).enddate) }
} 这是我的数据类,也是我添加了startDate和endDate的RideDate项的主要方法 如果数据包含,我希望手动动态删除项目 date1.startdate=“2018-11-05 00:00:00+0000” date1.enddate=“2018-11-06 23:59:59+0000” 因此,我可以忽略它。请帮助我如何从kotlin的数组列表中删除该项,如下所示:如何从kotlin中的数组列表中删除项 数据类RideDate(变量enddate:String?=null,变量startdate:String?=null) 趣味主线(args:Array){ var listOfRideDate=mutableListOf(); val date1=RideDate() date1.startdate=“2018-11-05 00:00:00+0000” date1.enddate=“2018-11-06 23:59:59+0000” listOfRideDate.add(日期1) val date2=RideDate() date2.startdate=“2020-01-20 00:00:00+0000” date2.enddate=“2020-02-20 00:00:00+0000” listOfRideDate.add(日期2) val date3=RideDate() date3.startdate=“2020-03-20 00:00:00+0000” date3.enddate=“2020-03-20 00:00:00+0000” listOfRideDate.add(日期3) 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(日期5) 对于(0..listOfRideDate.size-1中的i){ //我们必须从列表中删除2018-11-05 00:00:00+0000和2018-11-06 23:59:59+0000 println(listOfRideDate.get(i).startdate+”和“+listOfRideDate.get(i).enddate) },kotlin,Kotlin,} 这是我的数据类,也是我添加了startDate和endDate的RideDate项的主要方法 如果数据包含,我希望手动动态删除项目 date1.startdate=“2018-11-05 00:00:00+0000” date1.enddate=“2018-11-06 23:59:59+0000” 因此,我可以忽略它。请帮助我如何从kotlin的数组列表中删除该项,如下所示: data class RideDate(var enddate: String? = null,var startd
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)
}
或
您可以在您的案例中使用
过滤器
listOfRideDate.removeIf {
it.startdate == "2018-11-05 00:00:00 +0000" && it.enddate == "2018-11-06 23:59:59 +0000"
}
另请参阅下页
如果元素与谓词匹配,则可以使用从原始列表中删除元素
listOfRideDate.removeAll{
it.startdate==“2018-11-05 00:00:00+0000”和&it.enddate==“2018-11-06 23:59:59+0000”
}
或者,您也可以按照Johann Kexel的建议,创建一个包含过滤项的新列表
val filtertedList=listOfRideDate.filter{
it.startdate==“2018-11-05 00:00:00+0000”和&it.enddate==“2018-11-06 23:59:59+0000”
}
its show Exception in thread“main”java.lang.IndexOutOfBoundsException:Index:4,Size:4无法删除循环中的某些内容。如果要更改当前列表,您必须首先在循环中保存元素,然后在集合中使用remove(element)
或removeAll(elements)
(当然也可以在循环外使用removeAt(index)
)不,您可以,只需停止循环即可。对,您可以删除一个项目确保您可以这样做,如果你只想删除一个元素。你能帮我在哪里添加这个代码吗?我在这个函数中非常新。什么条件以及如何在这里应用someLogik(元素)如何为开始日期和结束日期应用筛选器请帮助我?@MARSH您想从原始列表中删除元素还是想创建一个新的筛选元素?someLogik
只是一个示例,它象征一个返回布尔值的函数,您可以自己定义。例如fun非空(元素:RideDate)=元素!=空
。可以使用此过滤逻辑,也可以在foreach循环之后使用。
listOfRideDate.removeIf {
it.startdate == "2018-11-05 00:00:00 +0000" && it.enddate == "2018-11-06 23:59:59 +0000"
}
val filtertedList = listOfRideDate.filter { element -> someLogik(element)}