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()
(このキューではサポートされていません)。私は何を間違っていますか?