추천, 2023

에디터의 선택

Java에서의 Iterator와 ListIterator의 차이점

Iterator와 ListIterator는 Java의 세 커서 중 두 개입니다. Iterator와 ListIterator는 모두 J ava.Util 패키지의 Collection Framework 에 의해 정의됩니다. ListIterator는, Iterator 인터페이스의 아이 인터페이스입니다. Iterator와 ListIterator의 주요한 차이점은, Iterator 는 콜렉션 내의 요소를 순방향 으로 횡단 (traverse) 할 수있는 반면, ListIterator 는 콜렉션 내의 요소를 전방후방 방향으로 횡단 (traverse) 할 수있는 점입니다.

아래 비교 차트를 사용하여 Iterator와 ListIterator의 차이점에 대해 더 설명하겠습니다.

비교 차트

비교 근거반복자ListIterator
기본반복자는 콜렉션 내의 요소를 순방향으로 횡단 (traverse) 할 수 있습니다.ListIterator는, 콜렉션의 요소를, 전방 및 후방 방향으로 횡단 (traverse) 할 수 있습니다.
더하다Iterator는 컬렉션에 요소를 추가 할 수 없습니다.ListIteror는 컬렉션에 요소를 추가 할 수 있습니다.
수정Iterator는 콜렉션의 요소를 수정할 수 없습니다.ListIterator는 set ()를 사용하여 콜렉션의 요소를 수정할 수 있습니다.
횡단Iterator는 맵, 리스트 및 세트를 순회 할 수 있습니다.ListIterator는 List 객체만을 트래버스 할 수 있습니다.
색인Iterator에는 콜렉션에서 요소의 색인을 가져 오는 메소드가 없습니다.ListIterator를 사용하면 (자), 콜렉션 내의 요소의 인덱스를 취득 할 수 있습니다.

Iterator의 정의

Iterator는 Collection Framework 의 인터페이스입니다. 이는 콜렉션 요소를 탐색하는 데 사용됩니다. Iterator를 사용하면 컬렉션의 각 요소를 하나씩 반복하고 컬렉션에서 요소를 가져 오거나 컬렉션에서 요소를 제거 할 수 있습니다. Iterator를 사용하여 컬렉션의 요소를 수정할 수 없다는 것을 알 수 있습니다.

Iterator는 반복자를 콜렉션의 시작 부분에 리턴하는 iterator () 메소드를 가지고있다. 컬렉션의 시작 부분에 반복자를 얻으면 콜렉션의 요소를 순회하여 루프가 반복 될 때마다 hasNext () 를 호출하는 루프를 설정합니다. hasNext ()는 true를 반환하면 다음 요소가 컬렉션에 있음을 의미하고 false 를 반환하면 모든 요소가 통과 함을 의미합니다. 그런 다음 루프 내에서 next ()를 사용하여 Collection의 각 요소를 가져올 수 있습니다. next () 메서드는 컬렉션의 다음 요소를 반환합니다.

약점:

Iterator를 사용하면 컬렉션을 순방향으로 만 이동할 수 있습니다.
Iterator를 사용하면 콜렉션의 요소를 조작하거나 수정할 수 없습니다.

ListIterator의 정의

ListIterator는 Collection 프레임 워크 의 인터페이스이며 Iterator 인터페이스를 확장합니다. ListIterator를 사용하면 컬렉션의 요소를 앞뒤 방향으로 탐색 할 수 있습니다. 컬렉션의 요소를 추가, 제거 또는 수정할 수도 있습니다 . 즉, Iterator의 단점을 제거한다고 말할 수 있습니다.

ListIterator의 메소드는 다음과 같습니다.

hasNext () : true를 반환하면 컬렉션에 요소가 더 있음을 확인합니다.
next () : 목록의 다음 요소를 반환합니다.
nextIndex () : 목록에서 다음 요소의 색인을 반환합니다.
hasPrevious () : 콜렉션에 역방향의 요소가있는 경우 true를 리턴합니다.
previous () : 컬렉션의 이전 요소를 반환합니다.
previousIndex () : 컬렉션에서 이전 요소의 인덱스를 반환합니다.
remove () : 콜렉션에서 요소를 삭제합니다.
set () : 컬렉션의 요소를 수정합니다.
add () : 컬렉션에 새 요소를 추가합니다.

Iterator와 ListIterator의 주요 차이점

  1. Iterator와 ListIterator의 기본적인 차이점은 커서 인 동시에 Iterator는 콜렉션의 요소를 순방향으로 만 탐색 할 수 있다는 것입니다. 한편, ListIterator는 전방 및 후방 방향으로 이동할 수 있습니다.
  2. 반복자를 사용하면 콜렉션에 요소를 추가 할 수 없습니다. 그러나 ListIterator를 사용하여 컬렉션에 요소를 추가 할 수 있습니다.
  3. Iterator를 사용하면 ListIterator를 사용하여 컬렉션에서 요소를 제거 할 수있는 컬렉션의 요소를 제거 할 수 없습니다.
  4. Iterator를 사용하면 Map, List, Set와 같은 모든 콜렉션을 트래버스 할 수 있습니다. 그러나 ListIteror를 사용하면 List 구현 객체 만 트래버스 할 수 있습니다.
  5. Iterator를 사용하여 요소의 인덱스를 검색 할 수 있습니다. 그러나 List가 순차적이며 인덱스 기반이므로 ListIterator를 사용하여 요소의 인덱스를 검색 할 수 있습니다.

결론:

List 객체를 정방향 및 역방향으로 특별히 트래버스해야하는 경우 ListIterator를 사용할 수 있습니다. 그렇지 않으면 모든 유형 컬렉션 객체를 지원하므로 Iterator를 사용할 수 있습니다.

Top