快速删除集合中的元素

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来遍历才可以删除,但是代码比较多。

相关推荐
雨白2 小时前
Kotlin 泛型基础:“万能魔法盒”的诞生
kotlin
小小测试开发7 小时前
RAG评测:把忠实度、检索命中率、噪声敏感度做成可回归的流水线
人工智能·数据挖掘·回归·kotlin
撩得Android一次心动7 小时前
Kotlin 语言【知识点整理3】
java·开发语言·笔记·学习·kotlin
Kapaseker9 小时前
我常用的 5 个 Kotlin 优化小技巧
android·kotlin
名剑走天下10 小时前
Kotlin_LiveData
开发语言·kotlin
JMchen1231 天前
Jetpack 内核实战(九):实战(上)——记事本首页列表 + 搜索功能开发
kotlin·android 实战·记事本 app 开发·recyclerview 优化·jetpack 综合实战
pengyu1 天前
【Kotlin 协程修仙录 · 炼虚境 · 初阶】 | 虚空造物:Channel 基础与协程间通信的管道艺术
android·前端·kotlin
小强闯江湖1 天前
ViewCompose:让原生 Android View 进入声明式时代
android·开源·kotlin
雨白1 天前
Kotlin 委托机制:搞懂“老板与秘书”模式
kotlin
pengyu2 天前
【Kotlin 协程修仙录 · 化神境 · 后阶】 | 异常天劫:Flow 异常处理的终极奥义与重试之道
android·kotlin