Iterator 계약은 커서·끝·변경 정책을 명시한다
순회 구현마다 같은 질문에 답해야 향상된 for문과 소비 코드가 예측 가능해집니다.
| 질문 | 선택 | 검증 |
|---|---|---|
| 커서 의미 | 다음 반환 위치 | 중복·누락 없음 |
| hasNext | 상태 변경 없음 | 반복 호출 동일 |
| 끝 next | 예외 | NoSuchElementException |
| 구조 변경 | 금지·fail-fast | 정책 일관 |
| 재순회 | 새 Iterator | 독립 cursor |
핵심: Iterator는 일회성이므로 새 순회에는 iterator()를 다시 호출합니다.