Joo*_*kka 12 java list listener
为什么监听器列表(例如在Java中使用addXxxListener()和removeXxxListener()注册和取消注册侦听器的列表)被称为列表,并且通常实现为列表?一套不是更合适,因为在听众的情况下
这只是一个传统问题吗?无论如何,套装都是引擎盖下的某种列表.是否存在性能差异?迭代List比通过迭代更快还是更慢Set?要么采取更多或更少的记忆?差异肯定几乎可以忽略不计.
将侦听器列表作为列表(而不是集合)的一个重要原因也解释了为什么您经常看到它们通过向后迭代.一个常见的场景涉及监听器在收到某些更改通知时将自身移除为监听器.如果侦听器存储为列表并向前迭代(或存储为集合并以某种未确定的顺序迭代),则将自身移除为侦听器将导致ConcurrentModificationException.
因此,相反,侦听器存储为列表并以向后顺序通知.然后,如果侦听器在通知时将其自身从侦听器列表中删除,则不会导致ConcurrentModificationException或移动其他尚未通知的侦听器的索引.
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |