如果这是荒谬的小学,请先告诉我。这是我第一次编程。
这里的问题是我需要打印出一个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的实例。谢谢您的帮助。真诚地感谢。
答案 0 :(得分:3)
您需要遍历列表,而不是遍历您的类实例,而实际上并未实现Iterable
,例如
public void printQueue(Queue q) {
for(String s : q.getList()) {
//do anything with your string
}
}
当然,这意味着您的LinkedList
实际上是LinkedList<String>
,并且您在班级中声明了list
字段的getter,例如public List<String> getList() { return list; }
。
答案 1 :(得分:1)
您的班级Queue
不可迭代。
顺便提一下,它的名称与java.util.Queue
发生冲突,其中 可迭代。
如果你真的试图迭代list
成员Queue
,你需要提供一个getter(它是私有的),或者自己写一个访问者。
答案 2 :(得分:0)
您似乎没有在list
的{{1}}成员上进行迭代。您需要实现q
接口,或直接迭代Iterable
。
真正正确的方法是实施q.list
。
答案 3 :(得分:0)
你需要使用迭代器来遍历LinkedList,如下所示:
iterator = q.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next()+" ");
}