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}
removeIf和removeAll区别
删除带字母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") }
removeIf 是Java8集合中的标准函数,removeAll则为kotlin扩展函数,在低版本也可以使用,且函数名含义更好。
总结
这种方式代码简洁,如果是自己用for循环,在循环中找到要删除的元素,然后调用remove,这会引发异常,需要使用Iterator来遍历才可以删除,但是代码比较多。