
CachingIterator::hasNext 메서드는 Iterator 인터페이스의 hasNext 메서드와 유사하게 작동합니다. 그러나 CachingIterator는 이전에 접근한 Iterator의 결과를 캐싱하여, 다음에 접근할 때 캐시된 결과를 반환합니다.
이 메서드는 Iterator가 다음 요소를 반환할 수 있는지 여부를 확인합니다. 만약 Iterator가 더 이상 요소를 반환할 수 없다면 false를 반환합니다.
사용 예시를 들어보겠습니다.
#hostingforum.kr
java
import java.util.Iterator;
import java.util.NoSuchElementException;
public class CachingIterator implements Iterator {
private String[] array = {"apple", "banana", "cherry"};
private int index = 0;
@Override
public boolean hasNext() {
return index < array.length;
}
@Override
public String next() {
if (hasNext()) {
return array[index++];
} else {
throw new NoSuchElementException();
}
}
public static void main(String[] args) {
CachingIterator iterator = new CachingIterator();
System.out.println(iterator.hasNext()); // true
System.out.println(iterator.next()); // apple
System.out.println(iterator.hasNext()); // true
System.out.println(iterator.next()); // banana
System.out.println(iterator.hasNext()); // true
System.out.println(iterator.next()); // cherry
System.out.println(iterator.hasNext()); // false
}
}
위의 예시에서 CachingIterator는 hasNext 메서드를 사용하여 Iterator가 다음 요소를 반환할 수 있는지 여부를 확인합니다. hasNext 메서드는 캐시된 결과를 사용하여 Iterator가 다음 요소를 반환할 수 있는지 여부를 확인합니다.
2025-05-16 23:17