2011-08-26 56 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