16. Explain the difference between Iterator and Enumeration ?

toutbon·2024년 3월 8일
0

질문의 목적

  • Iterator 과 Enumeration의 차이

Difference

  • 컬렉션의 항목을 순차적으로 지원하기 위해 설계됨

  • java 에서는 iterator를 더 standard한 방법으로 보고 권장

  • Enumeration 이 초기에 나와서 벡터나 해쉬테이블 같은 초기 컬렉션 객체만들 지원하는 반면, Iterator는 모든 컬렉션 객체를 지원한다

처리방식 - Enumeration

  • 처리방식도 실제로 차이가 있다. Enumerations snap shot 방식으로 원본과 별도로 컬렉션 내부의 엘리먼트를 처리한다.
  • 이 경우 스냅샷의 앨리먼트를 처리하는 동안 누군가 원본 컬렉션을 U/D 하는 경우, enumerator로 돌고있는 컬렌션과 차이가 생김
  • 예외 상황을 인지 하지 못하고 불일치가 발생할 가능성이 있다

처리방식 - iterator

  • 컬렉션 원본데이터 직접 접근해서 처리함
  • iterate 하는 와중에 element를 U/D 하고자 하면, ConcurrentModificationException 발생 (Fail-fast 방식)

Keyword Check

Enumeration

  • a few Collection support
  • snap-shot

Iterator (Java 에서 권장)

  • all Collection support
  • Fail-fast
  • remove() method

꿀팁 - 인터뷰에서 모르는 문제가 나오는 경우

  • 억지로 답변하지 말고, 솔직하게 모른다고 대답할 것
  • 사용을 못해봐서 혹은 제가 개발하던 시스템 환경과 달라서 모르겠다
  • 하지만 주변에 많은 개발자들과 항상 커뮤니케이션 채널을 유지하기 때문에, 언제든지 모르는 문제에 대해 조언이나 피드백을 받을 수 있다.
profile
뚜봉

0개의 댓글