【发布时间】:2010-06-18 17:53:03
【问题描述】:
我有一个使用HashSet 的类,我希望该类实现Iterable,但是我不希望类迭代器支持remove() 方法。
HashSet 的默认迭代器是HashSet.KeyIterator,它是HashSet 类中的一个私有类,所以我不能简单地扩展它并覆盖remove 方法。
理想情况下,我希望避免为 KeyIterator 编写包装类,但我不知道如何以任何其他方式轻松简单地实现我自己的迭代器。
有什么想法吗?
干杯,
皮特
【问题讨论】:
-
你的 HashSet 需要修改吗?
-
@Kevin 是的,但它还必须保持一致的元素数量,这由类的内部逻辑管理,但如果使用迭代器修改 HashSet,我不想让其信任。
-
包装器有什么不好?
标签: java collections iterator