在Java中使用带有链表的迭代器

时间:2011-08-26 03:41:59

标签: java iterator linked-list

我创建了一个名为“SList”的链表类,它允许创建一个空的链表。方法“insertFront”在列表的前面插入一个对象并增加大小。下面,在主类中,我创建了一个SList对象,并在列表中添加了两个字符串。我想打印这份清单。我试图创建一个从java.util导入的迭代器对象,但编译器在“Iterator”下给我一个红色下划线。为什么我收到此错误?我该如何打印此链表?

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 个答案:

答案 0 :(得分:1)

我对你的代码感到有点困惑。鉴于您当前的实现,没有方法可以从Iterator类返回SList对象。

如果您希望将实现基于Java Collections框架,那么您应该在代码中实现Collection接口:

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

<E>是一种参数化类型,可使您的类类型安全。如果实现Collection接口,则需要实现多个方法,其中一个方法将返回Iterator<E>

如果您选择不使用Java Collections框架,那么操作就很容易,您只需要创建自己的所有方法。

可以在此处找到适用于泛型的精彩教程(如果您不想使用集合框架)at the Java Tutorials page for generics

收藏夹框架的另一个很棒的教程也可以在at the Java Tutorials page for Collections

找到

玩得开心!

相关问题