1. Kierunek przechodzenia: ListIterator pozwala programistom na iterację obiektów listy w obu kierunkach, tj. do przodu, jak i do tyłu, przy użyciu metody previous() i next ().
iterator może być użyty do iteracji listy, mapowania i ustawiania obiektów w jednym kierunku, tj. do przodu.
2. Ustawianie i mapowanie zaimplementowanych obiektów Traversal: ListIterator może być użyty tylko do przechodzić przez obiekt List . Ale Iterator może być używany do przechodzenia mapy, listy i ustawiania zaimplementowanych obiektów.
na przykład
// zostanie wytworzony obiekt ListIterator
ListIterator listiterarobject = List.listIterator (); / / obiekt iteratora jest tworzony przez iteratora iteratorObject = List.iterator();
3. Dodaj lub Ustaw operację w dowolnym indeksie: zgodnie z ListIterator Oracle docs,
ListIterator może modyfikować listę podczas iteracji za pomocą add(E e) , remove() lub set(E e).
Iterator nie może dodać elementu podczas przechodzenia, ale może usunąć element z bazowej kolekcji podczas iteracji, ponieważ składają się one tylko z metody remove (). W Iteratorze nie ma metody add(E e) I set(E e).
4. Określ aktualną pozycję iteratora: ListIterator może uzyskać aktualną pozycję iteratora na liście.Bieżąca pozycja iteratora podczas przechodzenia nie może być określona za pomocą iteratora.
5. Pobieranie indeksu elementu: ListIterator może uzyskać indeks elementów przy użyciu metod previousIndex(E e) lub nextIndex(E e).Nie możemy uzyskać indeksu za pomocą iteratora, ponieważ nie ma takich metod.
przykład iteratora i Listiteratora
Importuj Javę.util.Iterator;import java.util.ListIterator;public class IteratorListIteratorExample {public static void main (String args) {
List listObject = new ArrayList();listObject.add("Alive is awesome"); listObject.add("Love yourself");ListIterator listIteratorObject = listObject.listIterator();System.out.println("ListIterator object output in forward direction:");System.out.println("");while( listIteratorObject.hasNext() ) { System.out.println(listIteratorObject.next()); }System.out.println("ListIterator object output in backward direction:");System.out.println("");while( listIteratorObject.hasPrevious() ) { System.out.println(listIteratorObject.previous()); } List iteratorListObject = new ArrayList(); iteratorListObject.add("Facebook"); iteratorListObject.add("Google"); iteratorListObject.add("Apple"); Iterator javaHungryIterator = iteratorListObject.iterator();System.out.println("Iterator object output in forward direction:");while( javaHungryIterator.hasNext() ) { System.out.println(javaHungryIterator.next()); }}}
wyjście:
wyjście obiektu ListIterator w kierunku do przodu:
Alive is awesomeLove yourself
wyjście obiektu ListIterator w kierunku wstecznym: Love yourselfAlive jest niesamowitewyjście obiektu Iterator w kierunku do przodu:FacebookGoogleApplepodobieństwa między Iteratorem a Listiteratorem w Javie
1. Interfejsy: zarówno Iterator, jak i ListIterator są interfejsami . ListIterator rozszerza interfejs iteratora.
2. Ramy Zbiórki : Zarówno Iterator, jak i ListIterator są członkami Java Collection Framework.
3. Traversal: oba są używane do iteracji nad kolekcją obiektów .
4. Interfejsy dodane do jdk: oba interfejsy są dodawane do jdk w Java 1.2
Recap : Różnica między Iteratorem a Listiteratorem w Javie z przykładem
ListIterator | Iterator | |
---|---|---|
kierunek ruchu | zarówno do przodu , jak i do tyłu | do przodu |
objects traversal | tylko lista | Mapa, zestaw i lista |
Dodaj i ustaw operacje | pozwala na obie operacje | niemożliwe |
aktualna pozycja iteratora | tak, można określić | nie jest możliwe. |
Pobierz indeks | tak | nie jest możliwe |