무한 반복기는 끝 요소에 도달 할 때 되감기를 제외하고 위 코드에서 수행하는 것과 정확히 동일합니다.
어쩌면이 예제는 유용하게 사용할 수있는 방법을 설명하는 데 도움이됩니다
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++;
}
각 반복에서 l
의 주 :
[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
http://stackoverflow.com/questions/2622591/is -an-infinite-iterator-bad-design 이 질문에 대한 답변입니다. – Nik
아, 여기서 "무한 반복자"의 해석이 무엇인지 확실하지 않습니다. 케이스가 개방형 범위에서 반복해야한다면 @NikunjChauhan이 맞습니다. Google 콜렉션 라이브러리, PHP 및 기타 여러 언어와 같이 컬렉션에 대한 무한 반복자를 의미하는 경우 아래를 참조하십시오! –