오늘의하루

[JAVA] Iterator Method 관련 내용 본문

JAVA

[JAVA] Iterator Method 관련 내용

오늘의하루_master 2022. 8. 18. 09:30
반응형

컬렉션에 저장된 데이터를 접근하는 데 사용되는 인터페이스를 의미합니다.

  • ListIterator(양방향)은 Iterator(단방향)의 접근성을 향상한 것이다.

Iterator Method

  • boolean hasNext() : 읽어 올 요소가 남아 있는지 확인 ( 있다면 true, 없다면 false)
  • Object next() : 다음 요소를 읽어온다.
    • hasNext()로 요소가 있는지 확인하고 next()를 사용하는 게 안정적이다.
  • void remove() : 요소를 삭제한다.
    • next() 호출 후 remove()를 호출해야 한다.
  • void forEachRemaining(Consumer<?super E> action) 
    • 컬렉션에 남아있는 요소들에 대해 지정된 작업(action)을 수행한다. (람다식을 사용하는 디폴트 메서드)

Iterator의 특징

컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것

  • 컬렉션에는 List, Set, Map 각각 다양한 구조를 가지고 있기 때문에 표준화가 필요하다.
  • 컬렉션에 iterator()를 호출해서 Iterator를 구현한 객체를 얻어서 사용한다.
// 예시

List list = new ArrayList();
Iterator it = list.iterator(); // iterator 인스턴스 생성

while(it.hasNext()){ // 읽어올 요소가 있는지 확인
    System.out.println(int.next()); // 다음 요소 읽기
}

Map은 Iterator()를 그냥 사용할 수 없다.

Map에서는 Iterator()를 사용할 수 없기 때문에 keySet(), entrySet(), values()를 사용한다.

  • Set, Set, Collection이기 때문에 이제 Iterator()를 사용할 수 있다.
// 예시
Map map = new HashMap();
Iterator it = map.entrySet().iterator();

while(it.hasNext()){
    System.out.println(it.next());
}
반응형
Comments