Iterator와 ListIterator

KIMA·2023년 1월 20일
0

java

목록 보기
7/10

Iterator 인터페이스

  • 자바의 Collection 프레임워크는 각 요소를 순회할 때 Iterable 인터페이스를 이용한다.

  • Iterable 인터페이스는 iterator()를 통해 Iterator를 반환해준다.

    • Iterator는 Collection 종류에 맞춰 각 요소를 순회하는 코드가 구현되어있다.
  • Iterator의 메소드

    메소드명리턴 타입설명
    hasNext()booleaniterator가 컬렉션에서 다음 요소를 가지고 있다면 true, 없으면 false를 리턴한다.
    next()Eiterator가 컬렉션의 다음 요소를 반환한다.
    remove()voiditerator가 컬렉션에서 마지막으로 반환한 요소를 삭제한다.
  • 예제 코드

List<Integer> list = new LinkedList<>();
list.add(1);
list.add(2);

Iterator<String> iter = list.iterator();
while(iter.hasNext()) {
	System.out.println(iter.next());
}
1
2
  • Iterator를 통한 순회는 반복문을 통한 순회와 차이가 존재한다.

💡 Collection class and interface hierarchy

  • 참고로 Map은 Collection이 아니다.

출처 : 위키백과 - Collection (abstract data type)

ListIterator

: 양방향 이동이 가능한 Iterator

  • List 인터페이스를 구현한 클래스만 listIterator() 메소드를 통해 사용할 수 있다.
  • 예제 코드
LinkedList<Integer> list = new LinkedList<>();
list.add(4);
list.add(3);
list.add(2);
list.add(1);

ListIterator<Integer> iter = list.listIterator();

while (iter.hasNext()) {
    System.out.print(iter.next() + " ");
}

while (iter.hasPrevious()) {
    System.out.print(iter.previous() + " ");
}
4 3 2 1 
1 2 3 4

Reference

profile
안녕하세요.

0개의 댓글