快速删除集合中的元素

List

删除包含字母A的元素:

kotlin 复制代码
fun main() {
    val list = mutableListOf("ABC", "DEF", "AEE")
    println(list)
    val hasRemove = list.removeIf { it.contains("A") }
    println("hasRemove: $hasRemove")
    println(list)
}

运行结果如下:

复制代码
[ABC, DEF, AEE]
hasRemove: true
[DEF]

Map

删除key中包含字母A的元素:

kotlin 复制代码
fun main() {
    val map = mutableMapOf("ABC" to "ABC", "DEF" to "DEF", "AEE" to "AEE")
    println(map)
    val hasRemove = map.entries.removeIf { it.key.contains("A") }
    println("hasRemove: $hasRemove")
    println(map)
}

运行结果如下:

复制代码
{ABC=ABC, DEF=DEF, AEE=AEE}
hasRemove: true
{DEF=DEF}

removeIfremoveAll区别

删除带字母o的元素:

kotlin 复制代码
fun main() {
    val set = mutableSetOf("one", "two", "three", "four", "five")
    println(set)
    val remove = set.removeIf { it.contains("o") }
    println("remove = $remove")
    println(set)
}

输出:

复制代码
[one, two, three, four, five]
remove = true
[three, five]

改用removeAll效果一样:

kotlin 复制代码
val remove = set.removeAll { it.contains("o") }

removeIfJava8集合中的标准函数,removeAll则为kotlin扩展函数,在低版本也可以使用,且函数名含义更好。

总结

这种方式代码简洁,如果是自己用for循环,在循环中找到要删除的元素,然后调用remove,这会引发异常,需要使用Iterator来遍历才可以删除,但是代码比较多。

相关推荐
alexhilton2 天前
使用Android Archive进行打包
android·kotlin·android jetpack
逐光老顽童4 天前
Java 与 Kotlin 混合开发避坑指南:30 个真实案例实录
android·kotlin
plainGeekDev5 天前
null 判断 → Kotlin 可空类型
android·java·kotlin
plainGeekDev5 天前
getter/setter → Kotlin 属性
android·java·kotlin
Junerver5 天前
我写了一个 Compose Multiplatform 组件库,你可能会用到
kotlin·android jetpack
Ehtan_Zheng6 天前
Kotlin const val vs val:字节码、性能与隐藏陷阱详解
android·kotlin
zhangphil6 天前
大日志文件截取,从指定日志文件中提取两个标记字符串之间的全部内容,Kotlin
kotlin
朝星6 天前
Android开发[14]:网络优化之OkHttp
android·okhttp·kotlin
AI浩6 天前
模型剪枝与稀疏推理:结构化、非结构化、2:4 稀疏与大模型压缩(分层式精讲)
android·kotlin·剪枝
QING6187 天前
Kotlin 日常开发常用语法糖整理 —— 速记
android·kotlin·android jetpack