8. Iterator 인터페이스

한승록·2023년 12월 6일
0

자바 활용

목록 보기
8/9
post-thumbnail

1) 개념

Java에서 Iterator 인터페이스는 Collection조회, 삭제 시 활용하게 됩니다.
Itrator는 반복자라는 의미를 가집니다. 말 그대로 반복을 하게 됩니다. 대상은 Collection이죠.
public class Velog {
	List<String> list = Arrays.asList("첫번째", "두번째", "세번째");
    
    Iterator<String> linked = list.interator();
}




2) 사용법

Iterator조회, 삭제에 사용됩니다.

2-1) 조회

전체 조회를 위해서는 for 혹은 while 과 같은 반복과 해당 요소를 불러낼 수 있는 메서드과 활용됩니다.
hasNext()를 통해 반복문을 실행시키고 next()를 통해 해당 요소를 불러오게 됩니다.
여기서 hasNext()boolean 자료형을 반환하게 됩니다.
public class Velog {
	List<String> list = Arrays.asList("첫번째", "두번째", "세번째");
    
    Iterator<String> linked = list.interator();
    
    while(linked.hasNext()) {
    	System.out.println(linked.next());
    }
}



2-2) 삭제

삭제는 여타 다른 Collection에서 사용하는 remove()메스드를 통해 실행됩니다.
public class Velog {
	List<String> list = Arrays.asList("첫번째", "두번째", "세번째");
    
    Iterator<String> linked = list.interator();
    
    while(linked.hasNext()) {
    	System.out.println(linked.next());
        linked.remove();
    }
}




3) 사용 이유

사실 조회보다는 삭제에서 사용 이유를 찾을 수 있다고 생각합니다.
일반적인 방식으로 제거하게 되면 ConcurrentNodificationException이 발생하게 됩니다.
해당 오류는 Collection을 실시간으로 삭제하면서 반복문을 사용하게 되면 동시 수정이 발생했다는 의미입니다. 그렇기 때문에 Iterator를 사용하여 조회 및 삭제를 진행하게 됩니다.
이외에도 다음과 같은 이유를 통해 해당 인터페이스를 사용하게 됩니다.
  1. 일관성과 표준화
  2. : 코드를 일관성 있게 작성하고 여러 켤러렉션 간 코드를 재사용할 수 있도록 합니다.
  3. 추상화
  4. : 컬렉션 내부 구현에 대한 세부 사항을 숨기는 동시에 실제 데이터에 대한 구조 이해 없이 통제 가능합니다.
  5. 동적인 크기 처리
  6. : 크기가 동적으로 변화하는 순간에도 조작 가능합니다.
  7. 메모리 효율성
  8. : 전체 컬렉션을 메모리에 로드하지 않고 데이터를 다룰 수 있기 때문에 효율성을 향상시킵니다.
profile
개발 학습

0개의 댓글