Почему списки слушателей (например, в Java, которые используют addXxxListener()
и removeXxxListener()
для регистрации и отмена регистрации слушателей), называются списками и обычно реализуются как Lists? Не лучше ли Set, так как в случае слушателей есть
- Независимо от того, в каком порядке они вызываются (хотя вполне могут быть такие потребности, но это особые случаи, обычные механизмы слушателя не дают таких гарантий), и
- Не нужно регистрировать одного и того же прослушивателя более одного раза (независимо от того, приведет ли это к вызову одного и того же прослушивателя 1 раз или N раз или будет ошибкой, это другой вопрос)
Это только вопрос традиции? В любом случае наборы - это какие-то списки под капотом. Существуют ли различия в производительности? Итерируется через List
быстрее или медленнее, чем итерация через Set
? Делает ли он более или менее память? Различия, безусловно, почти незначительны.