gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:45:08 25 4
gpt4 key购买 nike

我创建了一个名为“SList”的链表类,它允许创建一个空链表。 “insertFront”方法在列表的前面插入一个对象并增加大小。下面,在主类中,我创建了一个 SList 对象并向列表添加了两个字符串。我想打印这份 list 。我尝试创建一个从 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();






}

}

最佳答案

我对你的代码有点困惑。鉴于您当前的实现,没有任何方法会返回 Iterator来自您的SList的对象类(class)。

如果您希望基于 Java Collections 框架实现您的实现,您应该实现 Collection代码中的接口(interface)如下:

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

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

如果您选择不使用 Java Collections 框架,也很容易做到,您只需要创建自己的所有方法即可。

可以在这里找到一个很棒的泛型教程(如果您不想使用集合框架)at the Java Tutorials page for generics

集合框架的另一个很棒的教程也可以在这里找到 at the Java Tutorials page for Collections

玩得开心!

关于java - 在 Java 中使用带有链表的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7199796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com