Java字典迭代器类型问题



因此,我正在尝试创建一个链接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>>

相关内容

最新更新