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에 나열되어 있습니다.
넌 할 수 있다.
- 거꾸로 반복하다
- 언제든지 반복기를 얻을 수 있습니다.
- 언제든지 새로운 값을 추가합니다.
- 그 시점에서 새로운 값을 설정합니다.
두 가지 차이가 있습니다.
반복기를 사용하여 개체 집합과 목록을 이동하고 개체 유형도 매핑할 수 있습니다.ListIterator는 List-type Objects에 대해 트래버스할 수 있지만, Set-type Objects에는 사용할 수 없습니다.
즉, Set and List를 사용하여 반복기 개체를 가져올 수 있습니다. 다음을 참조하십시오.
반복기를 사용하면 Collection Object에서 요소를 전진 방향으로만 가져올 수 있습니다.
반복기에서의 메서드:
hasNext()
next()
remove()
Iterator iterator = Set.iterator(); Iterator iterator = List.iterator();
단, ListIterator 오브젝트는 List 인터페이스에서만 가져옵니다.여기를 참조해 주세요.
여기서 ListIterator를 사용하면 양방향(앞방향과 뒤방향 모두)으로 이동할 수 있습니다.그래서 두 가지 방법이 더 있습니다.
hasPrevious()
그리고.previous()
'반복자'의 그것 말고는요또한 다음 또는 이전 요소의 인덱스를 가져올 수 있습니다(사용 방법:nextIndex()
그리고.previousIndex()
각각 )을 참조해 주세요.ListIterator 메서드:
- hasNext()
- 다음()
- 이전()
- has Previous()
- 삭제()
- nextIndex()
- 이전의인덱스()
ListIterator listiterator = List.listIterator();
즉, Set 인터페이스에서 ListIterator 개체를 가져올 수 없습니다.
참고 자료 : - Iterator와 ListIterator의 차이점은 무엇입니까?
반복기는 ListIterator의 슈퍼 클래스입니다.
그 차이는 다음과 같습니다.
- 와 함께
iterator
앞으로만 갈 수 있지만ListIterator
요소를 읽는 동안 백워드를 이동할 수도 있습니다. - 와 함께
ListIterator
이동 중에 언제든지 인덱스를 얻을 수 있습니다.이러한 인덱스는iterator
s. - 와 함께
iterator
사용 가능한 다음 요소만 확인할 수 있지만listiterator
이전 요소와 다음 요소를 확인할 수 있습니다. - 와 함께
listiterator
이동 중에 언제든지 새 요소를 추가할 수 있습니다.에서는 할 수 없다iterator
. - 와 함께
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
'source' 카테고리의 다른 글
소수점 뒤에 두 자리만 표시 (0) | 2022.09.13 |
---|---|
MySQL 범위 내에서 누락된 날짜를 채우려면 어떻게 해야 합니까? (0) | 2022.09.13 |
jQuery에서 체크박스가 켜져 있는지 확인합니다. (0) | 2022.09.13 |
vibed 앱에서 MySQL/MariaDB 데이터베이스에 연결할 수 없음 (0) | 2022.09.13 |
기존 값보다 큰 값의 첫 번째 발생 횟수 (0) | 2022.09.12 |