source

Iterator와 Listiterator의 차이점

factcode 2022. 9. 13. 22:02
반응형

Iterator와 Listiterator의 차이점

Iterator ite = Set.iterator();
Iterator ite = List.iterator();

ListIterator listite = List.listIterator();

사용할 수 있습니다.Iterator을 가로지르다Set또는List또는Map.그렇지만ListIterator를 통과하는 데만 사용할 수 있습니다.List, 그것은 통과할 수 없습니다.Set.왜요?

주요 차이점은 반복기를 사용하면 한 방향으로만 이동할 수 있지만ListIterator우리는 양방향으로 이동할 수 있습니다.다른 차이점이 있나요?그리고 의 장점ListIterator에 걸쳐서Iterator?

차이점은 Javadoc for ListIterator에 나열되어 있습니다.

넌 할 수 있다.

  • 거꾸로 반복하다
  • 언제든지 반복기를 얻을 수 있습니다.
  • 언제든지 새로운 값을 추가합니다.
  • 그 시점에서 새로운 값을 설정합니다.

두 가지 차이가 있습니다.

  1. 반복기를 사용하여 개체 집합과 목록을 이동하고 개체 유형도 매핑할 수 있습니다.ListIterator는 List-type Objects에 대해 트래버스할 수 있지만, Set-type Objects에는 사용할 수 없습니다.

    즉, Set and List를 사용하여 반복기 개체를 가져올 수 있습니다. 다음을 참조하십시오.

    반복기를 사용하면 Collection Object에서 요소를 전진 방향으로만 가져올 수 있습니다.

    반복기에서의 메서드:

    1. hasNext()
    2. next()
    3. remove()
    Iterator iterator = Set.iterator();
    Iterator iterator = List.iterator();
  2. 단, ListIterator 오브젝트는 List 인터페이스에서만 가져옵니다.여기를 참조해 주세요.

    여기서 ListIterator를 사용하면 양방향(앞방향과 뒤방향 모두)으로 이동할 수 있습니다.그래서 두 가지 방법이 더 있습니다.hasPrevious()그리고.previous()'반복자'의 그것 말고는요또한 다음 또는 이전 요소의 인덱스를 가져올 수 있습니다(사용 방법:nextIndex()그리고.previousIndex()각각 )을 참조해 주세요.

    ListIterator 메서드:

    1. hasNext()
    2. 다음()
    3. 이전()
    4. has Previous()
    5. 삭제()
    6. nextIndex()
    7. 이전의인덱스()
    ListIterator listiterator = List.listIterator();

    즉, Set 인터페이스에서 ListIterator 개체를 가져올 수 없습니다.

참고 자료 : - Iterator와 ListIterator의 차이점은 무엇입니까?

반복기는 ListIterator의 슈퍼 클래스입니다.

그 차이는 다음과 같습니다.

  1. 와 함께iterator앞으로만 갈 수 있지만ListIterator요소를 읽는 동안 백워드를 이동할 수도 있습니다.
  2. 와 함께ListIterator이동 중에 언제든지 인덱스를 얻을 수 있습니다.이러한 인덱스는iterators.
  3. 와 함께iterator사용 가능한 다음 요소만 확인할 수 있지만listiterator이전 요소와 다음 요소를 확인할 수 있습니다.
  4. 와 함께listiterator이동 중에 언제든지 새 요소를 추가할 수 있습니다.에서는 할 수 없다iterator.
  5. 와 함께listiterator이동 중에 요소를 수정할 수 있습니다.이러한 변경은,iterator.

반복기 외관 및 느낌:

 public interface Iterator<E> {
    boolean hasNext();
    E next();
    void remove(); //optional-->use only once with next(), 
                         dont use it when u use for:each
    }

ListIterator 외관 및 느낌:

public interface ListIterator<E> extends Iterator<E> {
    boolean hasNext();
    E next();
    boolean hasPrevious();
    E previous();
    int nextIndex();
    int previousIndex();
    void remove(); //optional
    void set(E e); //optional
    void add(E e); //optional
}

다음은 반복기와 listIterator의 차이입니다.

반복기:

boolean hasNext();
E next();
void remove();

listIterator:

boolean hasNext();
E next();
boolean hasPrevious();
E previous();
int nextIndex();
int previousIndex();
void remove();
void set(E e);
void add(E e);

언급URL : https://stackoverflow.com/questions/10977992/difference-between-iterator-and-listiterator

반응형