arrays - 如何从Kotlin中的ArrayList中删除项目

标签 arrays kotlin

var arrayone: ArrayList<String> = arrayListOf("a","b","c")

val arraytwo:ArrayList<String> = arrayListOf(arrayone.removeAt(0))

for (item in arraytwo) {
  println(item)
}

我只想从第一个数组中删除项目并创建一个新数组。但这只是在索引0打印一个项目

最佳答案

removeAt(0) 从第一个列表中删除第一个元素并返回它。然后 arrayListOf 使用该删除的项目创建一个新的(第二个)列表。

然后arrayone包含:bcarraytwo然后包含a

如果您不想触摸第一个列表,并且只想将其余项添加到新列表中,则可能要使用 drop ,例如:

var arrayone: ArrayList<String> = arrayListOf("a","b","c")

val arraytwo = arrayone.drop(1)

for (item in arraytwo) {
  println(item) // now prints all except the first one...
}
// arrayone contains: a, b, c
// arraytwo contains: b, c

或者,如果您只想删除最后一项,请使用 dropLast(1) 。或使用 dropWhile / dropLastWhile (如果您有条件申请并删除所有直到/直到该条件)...

如果您确实要从第一个列表中删除项目,并且仅将已删除的项目添加到第二个列表中,那么您当前的方法是可以的。但是,如果您想删除特定索引处的项目并有一个新列表而不是仅包含未删除的项目,则需要先构造第一个列表的副本,然后将removeAt应用于该列表,例如:
val arraytwo = arrayone.toMutableList().apply { 
  removeAt(0)
}
// or without the apply:
arraytwo.removeAt(0)

或者,您可以使用 filterIndexed 解决该问题:
val arraytwo = arrayone.filterIndexed { index, _ ->
  index != 1 // you can also specify more interesting filters here...
} // filter, map, etc. all return you a new list. If that list must be mutable again, just add a .toMutableList() at the end

通过使用filterIndexedfilterdrop等,您可以确保第一个列表保持不变。如果您不想首先触摸第一个列表,则可能希望使用 listOf toList ,即仅将 List 作为类型,而不公开可变函数(也请检查Kotlin reference regarding Collections: List, Set, Map)。

也许您也对 filter / filterNot 感兴趣,然后很快对 minus 或类似函数删除了没有索引的不需要的项目。

关于arrays - 如何从Kotlin中的ArrayList中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52533475/

相关文章:

kotlin - 值递增的Kotlin整数常量

gradle - 尝试将木材添加到Kotlin项目中会导致多个 'Unable to resolve dependency for…' Gradle错误

swift - Kotlin-Swift 互操作问题 : ArrayList has wrong count value when passed as NSMutableArray from Swift Code for Release builds

java - 将自定义 DialogFragment 绑定(bind)到初始化到应用程序范围的服务

php - 数组在 foreach 中不断重复

c - UART接收字符串

kotlin - 如何将 List<<MyClass> 转换为 List<T>?

javascript - React Js 循环访问父数组以进行登录授权

javascript - 在 JS 中过滤二维数组

php - 将 JSON 数组中的值分配给 PHP 中的变量