2

如果这太荒谬了,让我首先道歉。这是我第一次编程。

这里的问题是我需要打印出 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 的实例。谢谢您的帮助。这是由衷的赞赏。

4

4 回答 4

3

您需要遍历一个列表,而不是遍历实际上没有实现的类实例Iterable,例如

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

当然,这意味着您LinkedList实际上是,并且您在类中声明了LinkedList<String>一个 getter字段,例如.listpublic List<String> getList() { return list; }

于 2013-04-25T18:04:06.103 回答
1

您的课程Queue不可迭代。

java.util.Queue顺便说一句,它的名字与迭代的 相冲突。

如果您实际上是在尝试遍历 的list成员Queue,则需要为此提供一个 getter(它是私有的),或者为自己编写一个访问者。

于 2013-04-25T18:05:11.570 回答
0

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

真正正确的方法是实施Iterable.

于 2013-04-25T18:04:17.300 回答
0

您需要使用迭代器来遍历 LinkedList,如下所示:

iterator = q.iterator(); 
  while (iterator.hasNext()) {
  System.out.print(iterator.next()+" ");  
}
于 2013-04-25T18:06:14.733 回答