List
删除包含字母A的元素:
funmain(){vallist=mutableListOf("ABC","DEF","AEE")println(list)valhasRemove=list.removeIf{it.contains("A")}println("hasRemove:$hasRemove")println(list)}运行结果如下:
[ABC, DEF, AEE] hasRemove: true [DEF]Map
删除key中包含字母A的元素:
funmain(){valmap=mutableMapOf("ABC"to"ABC","DEF"to"DEF","AEE"to"AEE")println(map)valhasRemove=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的元素:
funmain(){valset=mutableSetOf("one","two","three","four","five")println(set)valremove=set.removeIf{it.contains("o")}println("remove =$remove")println(set)}输出:
[one, two, three, four, five] remove = true [three, five]改用removeAll效果一样:
valremove=set.removeAll{it.contains("o")}removeIf是Java8集合中的标准函数,removeAll则为kotlin扩展函数,在低版本也可以使用,且函数名含义更好。
总结
这种方式代码简洁,如果是自己用for循环,在循环中找到要删除的元素,然后调用remove,这会引发异常,需要使用Iterator来遍历才可以删除,但是代码比较多。