我只是意向初始化過這樣一個通用的鏈表的迭代器(通用典型牛逼似乎在這裏被刪除,因爲該網站把它解釋爲標籤)如何初始化一個迭代器
public <T> LinkedList<T> sort(LinkedList<T> list){
Iterator<T> iter = new list.iterator();
...
,但我得到錯誤:
「list can not be resolved」
出了什麼問題?
我只是意向初始化過這樣一個通用的鏈表的迭代器(通用典型牛逼似乎在這裏被刪除,因爲該網站把它解釋爲標籤)如何初始化一個迭代器
public <T> LinkedList<T> sort(LinkedList<T> list){
Iterator<T> iter = new list.iterator();
...
,但我得到錯誤:
「list can not be resolved」
出了什麼問題?
爲了進一步闡明Mykola的正確答案:您正嘗試創建類list
的新對象。所以你只想打電話給list.iterator()
(在裏面的某個地方,它本身正在做new Iterator
或類似的東西,然後把它返回給你)。
既然你清楚地使用Java 5或以上,不過,更好的方法可能是,而不是做
public <T> LinkedList<T> sort(LinkedList<T> list){
Iterator<T> iter = new list.iterator();
while (iter.hasNext()){
T t = iter.next();
...
}
}
,而不是這樣做:
public <T> LinkedList<T> sort(LinkedList<T> list){
for (T t : list){
...
}
}
猶未了,不寫該方法,而不是使用
Collections.sort(list);
刪除new
關鍵字:
Iterator<T> iter = list.iterator();
的字,接着新運營商必須是一個類名。這裏list.iterator()已經返回一個Object。所以在這一點上新的是不必要的。