作業:請指引我幫助指導我沒有張貼Java:實現自己的鏈接LIst - >在哪裏定義hasNext(),next(),remove()?
我的教練是有我們實現一個LinkedList作爲家庭作業完成代碼。以下是該類外殼的標題:
public class LinkedList<T> implements Iterable<T>, Iterator<T>
注意他正在實現Iterable和Iterator接口。然後我明白我需要在我的類中實現迭代器(),hasNext(),next()和remove()方法。但讓我困惑的是,他並沒有將Iterator接口所需的方法放在單獨的內部類中。以下所有方法在LinkedList類中定義:
/*
* (non-Javadoc)
*
* @see java.lang.Iterable#iterator()
*/
@Override
public Iterator<T> iterator()
{
return null;
}
/*
* (non-Javadoc)
*
* @see java.util.Iterator#hasNext()
*/
@Override
public boolean hasNext()
{
return false;
}
/*
* (non-Javadoc)
*
* @see java.util.Iterator#next()
*/
@Override
public T next()
{
return null;
}
/*
* (non-Javadoc)
*
* @see java.util.Iterator#remove()
*/
@Override
public void remove()
{
}
不應該iterator()方法來返回類似:
public Iterator<T> iterator()
{
return new MyClassIterator(front);
}
凡MyClassIterator()
與hasNext()
,next()
,並確定remove()
方法。我錯過了什麼?
你是對的,這很混亂。集合通常不實現'Iterator'(迭代器)。你仍然可以在內部類中實現迭代器,並且只將'Iterator'方法委託給你的迭代器,即'hasNext()'將會是'return iterator()。hasNext();'但是'iterator()'方法應該按照你的建議更新。 – 2013-03-02 06:33:55
這不僅令人困惑,這是明顯錯誤的,正如下面的@Patricia所解釋的。 – Flavio 2013-03-02 08:48:05