我遇到了Java编程的问题。我想将一个类(二叉搜索树)实现为
public class ABC<Key, Value> implements Iterator<Key>
{
}
在这个课程中,我定义了一个名为ABCNode的节点,其结构如下:
public class ABCNode
{
public Key key;
public Value value;
public ABCNode left;
public ABCNode right;
}
然后我编写了以下代码
public Iterable<Key> iterator()
{
return new ABCKeyIterator();
}
private class ABCKeyIterator implements Iterator<Key>
{
public boolean hasNext() {}
public void remove() {}
public Key next() {}
}
该类包括键值对。现在我想实现一个迭代器函数来获取所有键。我在迭代器函数
时遇到错误iterator() in ABC cannot implement iterator() in Iterable return type Iterable<Key> is not compatible with Iterator<Key> where Key,T are type-variables: Key extends Comparable<Key> declared in class ABC T extends Object declared in interface Iterable
任何人都可以帮忙看看如何从头开始实现它吗?我认为Java已经有了这样的东西。但我想自己实现它来学习它。谢谢。
答案 0 :(得分:1)
该错误消息抱怨此行:
public Iterable<Key> iterator()
您已将iterator()
声明为Iterable<Key>
而不是Iterator<Key>
。这两个界面虽然相关,却完全不同。