【发布时间】:2011-02-25 15:57:32
【问题描述】:
为什么侦听器列表(例如在 Java 中使用 addXxxListener() 和 removeXxxListener() 注册和注销侦听器的那些)称为 lists,并且通常实现为 Lists? Set 不是更合适,因为对于听众来说,有
- 无论以何种顺序调用它们(尽管可能有这样的需求,但它们是特殊情况;普通的侦听器机制无法保证),并且
- 无需多次注册同一个监听器(这样做是否会导致调用同一个监听器 1 次或 N 次,或者是错误,是另一个问题)
这只是传统的问题吗?无论如何,集合是某种类型的列表。有性能差异吗?迭代List 比迭代Set 快还是慢?是否占用更多或更少的内存?差异当然几乎可以忽略不计。
【问题讨论】:
-
'因为它是一个list'ener? :p