You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中调用ArrayList的removeAt方法如何返回ArrayList<TaskModel>?

解决ArrayList.removeAt返回元素而非单元素列表的问题

嘿,我明白你的困惑啦!ArrayList<T>.removeAt(index: Int) 这个方法的设计初衷就是移除指定索引的元素并返回该元素本身,而不是返回包含这个元素的列表。如果想要得到一个只包含被移除元素的 ArrayList<TaskModel>,可以用这几种简单的方式实现:

方法一:手动创建单元素列表

最直接的方式就是先调用 removeAt 获取被移除的元素,再把它放进新的 ArrayList 里:

// 先移除元素并拿到它
val removedTask = taskModelList.removeAt(1)
// 创建只包含该元素的新列表
val taskModelList2 = arrayListOf(removedTask)

这样 taskModelList2 就是你想要的 ArrayList<TaskModel> 类型啦~

方法二:封装成扩展函数(复用性更强)

如果需要频繁做这个操作,可以给 ArrayList 写个扩展函数,以后用起来更方便:

// 给任意类型的ArrayList添加扩展方法
fun <T> ArrayList<T>.removeAtAndReturnSingleElementList(index: Int): ArrayList<T> {
    val removedElement = this.removeAt(index)
    return arrayListOf(removedElement)
}

调用的时候就像这样:

val taskModelList2 = taskModelList.removeAtAndReturnSingleElementList(1)

注意:原列表的修改问题

要注意的是,removeAt 是原地修改原列表的操作——调用后原 taskModelList 里的对应元素会被删掉。如果不想改动原列表,记得先复制一份再操作:

// 先复制原列表,不影响原始数据
val copiedList = ArrayList(taskModelList)
val removedTask = copiedList.removeAt(1)
val taskModelList2 = arrayListOf(removedTask)

内容的提问来源于stack exchange,提问作者Praanto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:57:37