![](/img/trans.png)
[英]What is the most elegant way to remove values that have duplicates from a Java array
[英]What is the most elegant way to remove a listener from a list from a callback
假设我有以下侦听器
interface MyListener {
fun onResult(result: Int)
}
并且我的班级拥有此侦听器的列表
val MyListenerList = ArrayList<MyListener>()
我的疑问是:如果某个注册了侦听器的人想要在触发回调( onResult
)时注销它(将其从列表中删除),最优雅的方法是这样做,同时要记住在列表时直接调用它迭代运行是否会导致ConcurrentModificationException
?
不要在MyListenerList
进行迭代,请复制MyListenerList
并在该副本上进行迭代。 这样,删除就可以在MyListenerList
而不会引起ConcurrentModificationException
。
例如:
ArrayList(MyListenerList).forEach { it.onRemove(n) }
要么
MyListenerList.toArray().forEach { it.onRemove(n) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.