因此,我正在尝试创建一个链接hasheddictionary的迭代成员进行家庭作业,但是我对其类型有多个问题。
迭代器接口:
package nhUtilities.containers2;
public interface Iterator<Element> extends Cloneable, java.util.Iterator<Element>
{
public void reset ();
public void advance ();
public boolean done ();
public Element get ();
public boolean equals (Object obj);
public boolean traverses (Object container);
public Object clone ();
public void setEqualTo (Iterator<Element> other);
public boolean hasNext ();
public Element next ();
public void remove ();
}
在我的代码中,我有一个称为entryiterator的私人类。它扩展了一个抽象术语,但在上面实现了迭代器。
我当前的实现如下:
private class EntryIterator<Element> extends AbstractIterator<Element>
implements Iterator<Element>
{
protected Iterator<Key> keyIterator;
protected Dictionary<Key,Value> dictionary;
public EntryIterator(Dictionary<Key,Value> dictionary)
{
keyIterator = keys.iterator();
this.dictionary = dictionary;
}
public void reset()
{ keyIterator = keys.iterator(); }
/**
* @Requrie !this.done()
*/
public void advance()
{ keyIterator.advance(); }
public boolean done()
{ return keyIterator.done(); }
// public Entry<Key,Value> get()
// Violates initial Interface: Results in compile error.
// Return type must be "Element"
public Element get()
{
Key key = keyIterator.get();
Value value = dictionary.get(keyIterator.get());
return (Element) new Entry<Key,Value>(key, value);
}
public boolean traverses(Object container)
{
// TODO Iterator traverses
return false;
}
public void setEqualTo(Iterator<Element> other)
{
this.keyIterator = ((EntryIterator<Element>) other).keyIterator;
this.dictionary = ((EntryIterator<Element>) other).dictionary;
}
}
我已经完成了有关其类型的多种类型,但它们似乎都不与我的字典兼容。我是否应该按照上面的格式保持格式,我会在字典的迭代器()函数上遇到错误:
public Iterator<Entry<Key,Value>> iterator()
{
return new EntryIterator<Entry<Key,Value>>(this);
}
错误指出它是"返回类型对dictionary.iterator()不兼容"
我应该将入口类类型的类型更改为:
private class EntryIterator<eEntry<Key,Value>> extends AbstractIterator<Element>
implements Iterator<Element>
我只是遇到一个错误,说" token'&lt;'"的"语法错误"以及我的dictionary.iterator()函数上的另一个不兼容错误。
有人可以将我指向正确的方向,即我如何将所有这些不同类型的类型链接起来,以使他们返回我对字典要求的合同?
我试图在课堂上通过电子邮件向讲师提出我的问题,而仅避免了一对一的问题。任何帮助将不胜感激。
所以,问题实际上是我的班级实例化...在这里为每个有类似问题的人提供:
private class EntryIterator extends AbstractIterator<Entry<Key,Value>> implements
nhUtilities.containers2.Iterator<Entry<Key, Value>>