
CachingIterator::current 메서드는 항상 현재 항목을 반환하지는 않습니다. 데이터가 변경되었을 때, 캐싱된 데이터가 업데이트되지 않아 이전에 캐싱된 데이터를 반환할 수 있습니다.
캐싱된 데이터가 업데이트되는 방법은 CachingIterator의 rewind 메서드를 호출하여 캐싱을 초기화하는 것입니다. 이 메서드를 호출하면 CachingIterator는 데이터를 다시 캐싱하고, 이후의 current 메서드 호출은 현재 항목을 반환합니다.
CachingIterator::current 메서드는 Iterator 인터페이스의 current 메서드와 동일하게 동작합니다. 하지만, CachingIterator는 데이터를 캐싱하여 빠르게 접근할 수 있도록 해줍니다. 캐싱된 데이터가 업데이트되지 않아 이전 항목을 반환하는 것은 CachingIterator의 한계입니다.
CachingIterator를 사용할 때, 데이터가 자주 변경되는 경우에는 캐싱된 데이터가 업데이트되지 않아 문제가 발생할 수 있습니다. 이 경우, Iterator 인터페이스의 current 메서드를 직접 호출하거나, CachingIterator의 rewind 메서드를 호출하여 캐싱을 초기화하는 것이 좋습니다.
2025-06-18 01:59