我创建了一个名为“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();
}
}
答案 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
找到玩得开心!