What is an Infinite Iterator? Why use it?
我试图理解我在作业中必须回答的以下问题。它询问无限迭代器。它们在哪里有用?我认为迭代器用于遍历集合,比如:
一旦
无限迭代器和上面的代码完全一样,只不过当它碰到结束元素时会倒带。
也许这个例子有助于说明它是如何变得有用的:
1 2 3 4 5 6 7 8 9 10 | Let l = [1,2,3,4,5,6,7,8] int i = 0; InfiniteIterator itr = l.infiniteIterator(); while(itr.hasNext()) { if(i % 2 == 0) { itr.remove(); } i++; } |
每次迭代时
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [1,2,3,4,5,6,7,8] # i = 0, e = 1 [2,3,4,5,6,7,8] # i = 1, e = 2 [2,3,4,5,6,7,8] # i = 2, e = 3 [2,4,5,6,7,8] # i = 3, e = 4 [2,4,5,6,7,8] # i = 4, e = 5 [2,4,6,7,8] # i = 5, e = 6 [2,4,6,7,8] # i = 6, e = 7 [2,4,6,8] # i = 7, e = 8 [2,4,6,8] # i = 8, e = 2 [4,6,8] # i = 9, e = 4 [4,6,8] # i = 10, e = 6 [4,8] # i = 11, e = 8 [4,8] # i = 12, e = 4 [8] # i = 13, e = 8 [8] # i = 14, e = 8 [] # while loop exits |
号