在Java中迭代LinkedList

在Java中迭代LinkedList,java,linked-list,Java,Linked List,让我首先道歉,如果这是可笑的基本。这是我第一次编程 这里的问题是我需要打印一个LinkedList。有人能告诉我我做错了什么吗?以下是我所拥有的: public class Queue { private LinkedList list; public Queue() { list = new LinkedList(); } } public class BankQueue { static Queue q = new Queue(); public static void

让我首先道歉,如果这是可笑的基本。这是我第一次编程

这里的问题是我需要打印一个LinkedList。有人能告诉我我做错了什么吗?以下是我所拥有的:

public class Queue {

private LinkedList list;

public Queue() { 
    list = new LinkedList(); 
}
}

public class BankQueue {

static Queue q = new Queue();

public static void main(String[] args) {

    //Insert a menu with a list of possible choices

public static void printQueue(Queue q) {
    for (String s : q) {
        System.out.println(q);
    }
}

我不断收到错误,说我只能迭代java.lang.Iterable的数组或实例。谢谢你的帮助。非常感谢。

您需要迭代列表,而不是实际上没有实现
Iterable
的类实例,比如

public void printQueue(Queue q) {
     for(String s : q.getList()) {
         //do anything with your string
    }
}

当然,这意味着您的
LinkedList
实际上是
LinkedList
,并且您有一个在类中声明的
list
字段的getter,比如
public list getList(){return list;}

您需要迭代列表,而不是你的类实例,它实际上没有实现
Iterable
,比如

public void printQueue(Queue q) {
     for(String s : q.getList()) {
         //do anything with your string
    }
}

当然,这意味着您的
LinkedList
实际上是
LinkedList
,并且您在类中声明了一个
list
的getter字段,比如
public list getList(){return list;}

您似乎没有迭代
q
list
成员。您需要实现
Iterable
接口,或者直接迭代
q.list


真正正确的方法是实现
Iterable

您似乎没有在
q
列表
成员上迭代。您需要实现
Iterable
接口,或者直接迭代
q.list


真正正确的方法是实现
Iterable

您的类
队列
是不Iterable的

顺便说一句,它的名称与iterable的
java.util.Queue
冲突


如果您确实试图遍历
队列的
列表
成员
,您需要为此提供一个getter(它是私有的),或者为自己编写一个访问者。

您的类
队列
不适用

顺便说一句,它的名称与iterable的
java.util.Queue
冲突


如果您确实试图迭代
队列的
列表
成员
,您需要为此提供一个getter(它是私有的),或者为自己编写一个访问者。

您需要使用迭代器在LinkedList中循环,如下所示:

iterator = q.iterator(); 
  while (iterator.hasNext()) {
  System.out.print(iterator.next()+" ");  
}

您需要使用迭代器在LinkedList中循环,如下所示:

iterator = q.iterator(); 
  while (iterator.hasNext()) {
  System.out.print(iterator.next()+" ");  
}

OP定义了自己的
队列
类,该类没有实现
Iterable
,因此没有
迭代器()
方法。这就解释了为什么我不能让它工作。很抱歉与类名混淆。我没有意识到“队列”已经有了用途。无论如何,谢谢。OP已经定义了自己的
队列
类,它没有实现
Iterable
,因此没有
迭代器()
方法。这就解释了为什么我不能让它工作。很抱歉与类名混淆。我没有意识到“队列”已经有了用途。无论如何,谢谢。我必须添加getter,但这解决了我的问题。谢谢你的帮助!我不得不添加getter,但这解决了我的问题。谢谢你的帮助!我实际上没有意识到“队列”已经有了用途。也许我会更改这个东西的名称……我实际上没有意识到“队列”已经有了用途。也许我会改变这个东西的名字。。。