【发布时间】:2014-12-12 09:08:43
【问题描述】:
过去两天我在整个实现 Iterable 接口的事情上迷失了方向。
我已经阅读了一些博客等,并发现要实现 Iterable 我显然需要一个返回 Iterator 的函数,称为 iterator() 但在整个实现过程中迷失了方向。
现在,我读到的是我需要
public class MyCollection<E> implements Iterable<E>{
public Iterator<E> iterator() {
return new MyIterator<E>();
}
}
然后我需要
public class MyIterator <T> implements Iterator<T> {
public boolean hasNext() {
//implement...
}
public T next() {
//implement...;
}
public void remove() {
//implement... if supported.
}
}
现在,我不明白的是 E 和 T 需要是什么类型。 哪些必须与我正在迭代的内容相关,哪些可以/必须是通用的?
我试过了
public Iterator<SimpleHashtable.TableEntry> iterator() {
return new TableEntryIterator<SimpleHashtable.TableEntry>();
}
但我收到了Type mismatch: cannot convert from SimpleHashtable.TableEntryIterator<SimpleHashtable.TableEntry> to Iterator<SimpleHashtable.TableEntry> 错误。
Plox 帮助指导
【问题讨论】:
-
TableEntryIterator的定义在哪里? -
我还没写完呢。错误是因为它不完整吗?
-
我不知道你是否不给我们看...
-
您的类 TableEntryIterator 似乎没有实现 Iterator。
-
@almasshaikh 它没有实现
Iterator<SimpleHashtable.TableEntry>
标签: java generics types interface iterator