我已经编写了一个实现 Collection 和 Iterable 的类,我现在正试图通过增强的 for 循环来运行它。你可以在这里找到它:LinkedQueue
该类的重点是能够使用 LinkedQueue.getNext() 来遍历集合,它工作正常。但是,我也希望能够使用 for 循环遍历这些值。当前代码:
LinkedQueue<String> queue = new LinkedQueue();
queue.add("Test one");
queue.add("Test two");
queue.add("Test three");
System.out.println("queue.size = " + queue.size());
System.out.println("contents:");
for (String s : queue) {
System.out.print("Test: ");
System.out.println(s);
}
System.out.println("contents (x9):");
for (int i = 0; i < 9; i++) {
System.out.println(queue.getNext());
}
打印出来:
queue.size = 3
contents:
contents (x9):
Test one
Test two
Test three
...etc...
所以似乎 for 循环没有正确打印。我不认为这是大小问题,因为队列在开始之前的大小为 3。所以现在我的问题很可能是“可迭代方法有什么问题”,它们是hasNext()
、next()
和remove()
(在这个队列中不受支持)。我究竟做错了什么?