Kotlin ArrayList在调用removeAt时返回数据类型

问题描述

我有一个Kotlin ArrayList,其中包含一个名为TaskModel的数据类(例如val taskModelList = ArrayList<TaskModel>()

但是当我像val taskModelList2 = taskModelList.removeAt(1)一样调用remove时,它返回的类型为TaskModel而不是ArrayList<TaskModel>。如何获得它以返回TaskModels的ArrayList?

解决方法

这是预期的行为。删除的项目将返回(ArrayList),您可以将原始列表与其余项目一起使用。无需重新分配列表。

,

如果您想找回列表,可以使用filterIndexed

taskModelList.filterIndexed { index,_ -> index != 1 }
,

您可以使用apply()

fun main() {
    arrayListOf("a","remove","me","b","c")
        .apply { removeAt(1) }
        .apply { removeAt(1) }
        .also(::println)
}

输出:

[a,b,c]