gpt4 book ai didi

java - removeall 和 removeif 的用例

转载 作者:IT老高 更新时间:2023-10-28 13:47:25 29 4
gpt4 key购买 nike

我发现了这个:

fun main() {
val list: MutableList<Int> = mutableListOf(1, 2, 3, 4, 5)

list.removeAll { x -> x in 1..3 } // [4, 5]
list.removeIf { x -> x in 1..3 } // [4, 5]
}

它们都产生相同的结果。

虽然我知道 removeAll 是 Kotlin 而 removeIf 是 Java 但我不明白为什么 removeAllremoveIf 时存在 已经存在了吗?

事实上,我们可以在 Kotlin 中使用 removeIf 而没有任何麻烦。或者是否有任何用例可能需要一个胜过另一个?

最佳答案

还有一个重要的区别:

调用removeIfCopyOnWriteArrayList线程安全的,但是removeAll不是

看代码,removeIfCopyOnWriteArrayList 的自定义实现, 但是 removeAll 迭代索引并最终抛出 ArrayIndexOutOfBoundsException或者更糟糕的是,删除错误的元素,如果同时调用的话。

关于java - removeall 和 removeif 的用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51653851/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com