2
所以我试图创建一个LinkedHashedDictionary的Iterator成员的家庭作业,但是我有关于它的类型的多个问题。Java字典迭代器类型问题
Iterator接口:
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私有类。它扩展了一个AbstractIterator,但实现了上面的Iterator。
我目前的执行情况如下:
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()”
我应该改变EntryIterator类的类型类型:
private class EntryIterator<eEntry<Key,Value>> extends AbstractIterator<Element>
implements Iterator<Element>
我只是得到一个错误说“预期的标记语法错误‘<’”,以及其他不兼容错误在我Dictionary.Iterator()函数。
有人可以指出我正确的方向,我怎样才能连接所有这些不同类型,让他们返回我的字典合同要求?
我曾试图在课堂上询问我的问题,通过电子邮件发给老师,以及一对一地避免。任何帮助将非常感激。