所以这就是我所拥有的:
ArraySet
和ListSet
所以在Set中,我陈述Iterator <String> iterator();
,然后在我的2个非抽象类中,我有嵌套的类,它们被称为ArrayIterator
和ListIterator
,它们实现了迭代器的功能。但编译器抱怨ArraySet
和ListSet
必须
实施Set.iterator()
。如何使编译器识别出ArrayIterator
和ListIterator
是Set.iterator()
的实现?
所以它看起来像
interface Set extends Iterable< String > {
...
Iterator< String > iterator(); }
class ArraySet extends AbstractClass {
...
class ArrayIterator implements Iterator< String > { ... }
...
}
答案 0 :(得分:1)
您需要在非抽象类Set.iterator()
和ArraySet
中实施ListSet
,即:
在ArraySet
:
Iterator<String> iterator() {
// do something, probably return ArrayIterator ?
}
在ListSet
:
Iterator<String> iterator() {
// do something, probably return ListIterator ?
}
另外,我假设ArrayIterator
和ListIterator
都实现了Iterator
答案 1 :(得分:0)
我知道这不是你问题的直接答案。但只是为了知识,您可能想知道什么是内部迭代器以及什么是外部迭代器? 参考:GoF设计模式书