2011-08-26 60 views
0

我創建了一個名爲「SList」的鏈接列表類,它允許創建一個空的鏈接列表。 「insertFront」方法在列表的前面插入一個對象並增加尺寸。下面,在主類中,我創建了一個SList對象並將兩個字符串添加到列表中。我想打印此列表。我試圖創建一個從java.util導入的迭代器對象,但編譯器在「Iterator」下給我一個紅色下劃線。爲什麼我得到這個錯誤?我應該如何打印這個鏈表?在Java中使用帶有鏈接列表的迭代器

public class SList 
{ 
private SListNode head; 
private int size; //number of items in the list 

public SList() //constructor, empty list 
{ 
    head = null; 
    size = 0; 
} 
public void insertFront(Object item) 
{ 
    head = new SListNode(item, head); 
    size++; 
} 

}

import java.util.*; 

public class LinkMain 
    { 
     public static void main(String[] args) 
    { 
    String apples = "apples"; 
    String oranges = "oranges"; 

    SList x = new SList(); 

    x.insertFront(apples); 
    x.insertFront(oranges); 

    Iterator iter = x.Iterator(); 






} 

}

回答

1

我有點被你的代碼混淆。鑑於您目前的實施,沒有方法可以從您的SList類返回Iterator對象。

如果你想你的基地執行過Java集合框架,你應該實現在代碼中Collection接口,例如:

public class SList<E> implements Collection<E> { 
    //override methods here 
} 

<E>是一個參數化類型,使你的類類型 - 安全。如果你實現了Collection接口,你將需要實現幾種方法,其中一種方法是返回一個Iterator<E>

如果您選擇不使用Java集合框架,它也同樣容易,您只需創建所有自己的方法。

仿製藥偉大的教程(如果你不希望使用集合框架)都可以在這裏at the Java Tutorials page for generics

發現集合框架的另一個偉大的教程,也可以在這裏找到at the Java Tutorials page for Collections

玩得開心!

+0

感謝您的解釋。 – jlss4e