listiterator interface java with examples
Acest tutorial explică interfața ListIterator în Java pentru a traversa implementările listei. Veți afla despre diagrama clasei și metodele interfeței ListIterator:
La fel ca Iterator, interfața ListIterator oferă funcționalitatea de a parcurge implementările listei în Java și de a accesa elementele listei.
=> Verificați aici pentru a vedea A-Z a tutorialelor de instruire Java aici.
Ce veți învăța:
cum se adaugă valori la o matrice
Interfață ListIterator în Java
Unele dintre principalele caracteristici ale interfeței ListIterator sunt enumerate mai jos:
- ListIterator a fost introdus în Java 1.2
- ListIterator este o subinterfață a interfeței Iterator, adică se extinde de la interfața Iterator.
- ListIterator funcționează numai cu implementări de liste.
- ListIterator acceptă toate operațiunile și anume, Creați, Citiți, Actualizați și Ștergeți. (Denumite în mod colectiv operațiuni CRUD).
- ListIterator este un iterator bidirecțional și suportă iteratoare de direcție înainte și înapoi.
- În cazul ListIterator, nu există niciun element curent. Poziția cursorului este îndreptată către locația dintre elementul returnat prin metoda previous () și elementul care ar fi returnat prin metoda next ().
Să discutăm mai multe despre această interfață în acest tutorial.
Diagrama clasei ListIterator
ListIterator este o interfață care aparține cadrului API Colecții. Această interfață se extinde de la interfața Iterator. În afară de moștenirea metodelor interfeței Iterator, suportă și metodele pentru iterații bidirecționale și operații CRUD.
Diagrama de clasă a interfeței ListIterator este prezentată mai jos.
Figura de mai sus prezintă diagrama de clase a interfeței ListIterator. În secțiunea următoare, vom discuta în detaliu fiecare dintre metodele prezentate în figură.
Metode ListIterator
Interfața ListIterator oferă următoarele metode, așa cum se arată în tabelul de mai jos.
Nume metodă | Prototip | Descriere |
---|---|---|
elimina() | nul elimina () | Elimină ultimul element returnat fie prin metoda next () sau previous (). |
hasNext () | boolean hasNext () | Verifică dacă listIterator are mai multe elemente de parcurs în direcția înainte. |
Următorul() | E next () | Returnează următorul element din listă. Apoi deplasează cursorul pentru a indica spre următorul element. |
hasPrevious () | boolean arePrevious () | Verifică dacă ListIterator are mai multe elemente în direcția înapoi / înapoi. |
anterior() | E precedent () | Returnează elementul anterior din listă și deplasează cursorul într-o poziție în direcția inversă. |
nextIndex () | int nextIndex () | Returnează indexul elementului care va fi returnat prin apel la metoda next (). |
precedentIndex () | int precedentIndex () | Returnează indexul elementului care va fi returnat prin apel la metoda previous (). |
Șapte) | set nul (E și) | Înlocuiește ultimul element returnat prin metoda next () sau previous () cu noua valoare. |
adăugați (E) | adăugare nulă (E e) | Adaugă element nou în listă. |
În continuare, vom descrie fiecare dintre aceste metode în detaliu.
# 1) hasNext ()
Prototip: boolean hasNext ()
Parametri: ZERO
Valoare returnată:
- true => lista are următorul element
- Fals => lista nu mai are elemente
Descriere: Această metodă verifică dacă ListIterator are mai multe elemente de parcurs în direcția înainte. Dacă are mai multe elemente, atunci această metodă revine adevărată.
# 2) next ()
Prototip: E next ()
Parametri: ZERO
Valoare returnată: E => următorul element din listă.
Descriere: Metoda next () returnează următorul element din listă și mută cursorul la următorul element.
Excepție aruncată: NoSuchElementException - dacă ListIterator nu are următorul element.
# 3) arePrevious ()
Prototip: boolean arePrevious ()
Parametri: ZERO
Valoare returnată: true => ListIterator are elementul anterior
Descriere: Verifică dacă ListIterator are mai multe elemente în direcția înapoi / înapoi.
# 4) precedent ()
Prototip: E precedent ()
Parametri: ZERO
Valoare returnată: E => elementul anterior din listă
Descriere: Această metodă returnează elementul anterior din listă în timp ce parcurgeți înapoi și apoi deplasați cursorul înapoi.
Excepție aruncată: NoSuchElementException - dacă ListIterator nu are următorul element.
# 5) nextIndex ()
Prototip: int nextIndex ()
Parametri: ZERO
Valoare returnată: int => indexul elementului care va fi returnat de metoda next () sau dimensiunea listei dacă ListIterator se află la sfârșitul listei.
Descriere: Această metodă poate fi apelată înainte de metoda next (). Metoda nextIndex () returnează indexul elementului care va fi returnat de metoda next (). Dacă ListIterator se află la sfârșitul listei, atunci această metodă returnează dimensiunea listei.
# 6) previousIndex ()
Prototip: int precedentIndex ()
Parametri: ZERO
Valoare returnată: int => indexul elementului care va fi returnat prin metoda previous () sau -1 dacă ListIterator se află la începutul listei.
Descriere: Această metodă poate fi apelată înainte de metoda previous (). Metoda previousIndex () returnează indexul elementului care va fi returnat prin metoda previous (). Dacă ListIterator este la începutul listei, atunci metoda returnează -1.
# 7) elimina ()
Prototip: nul elimina ()
Parametri: ZERO
Valoare returnată: nul
Descriere: Metoda remove () șterge ultimul element care a fost returnat fie de metoda previous (), fie de next (). Apelul la metoda remove () poate fi efectuat o singură dată pe apel la metoda următoare () sau anterioară ().
Excepție aruncată:
- UnsupportedOperationException - ListIterator nu acceptă operația de eliminare.
- IllegalStateException - Dacă operațiunea curentă este în stare ilegală, adică nici următoarea, nici anterioară nu au fost încă apelate sau după apelul către următorul sau anterior, atunci adăugarea sau eliminarea nu au fost apelate.
# 8) set (E)
Prototip: set nul (E și)
Parametri: e => element nou cu care elementul vechi trebuie înlocuit
Valoare returnată: nul
Descriere: Metoda set () setează elementul returnat prin metoda previous () sau next () cu noua valoare trecută ca argument. Această metodă poate fi apelată numai dacă add () sau remove () nu este apelată după ultimul apel la metoda previous () sau next ().
Excepție aruncată:
- UnsupportedOperationException - ListIterator nu acceptă operația setată.
- ClassCastException - Dacă elementul specificat nu poate fi adăugat din cauza clasei sale.
- IllegalArgumentException - Dacă elementul / argumentul adăugat este ilegal sau nevalid.
- IllegalStateException - Dacă operațiunea curentă este în stare ilegală, adică nici următoarea, nici anterioară nu au fost încă apelate sau după apelul către următorul sau anterior, adăugarea sau eliminarea nu au fost apelate.
# 9) adăugați (E)
Prototip: adăugare nulă (E e)
Parametri: e => element nou care trebuie adăugat la listă
Valoare returnată: nul
Descriere: Metoda add () este utilizată pentru a adăuga un element nou la listă. Elementul este adăugat chiar înainte de elementul următor () s-ar fi întors, dacă există și după elementul pe care l-ar fi returnat metoda previous ().
Rețineți că, ca urmare a adăugării unui element, nu ar exista nicio modificare pentru a returna valoarea next (), dar metoda previous () va returna doar elementul adăugat.
unix shell scripting întrebări de interviu răspunsuri și explicații pdf
Excepție aruncată:
- UnsupportedOperationException - ListIterator nu acceptă metoda de adăugare.
- ClassCastException dacă un element specificat care nu poate fi adăugat din cauza clasei sale.
- IllegalArgumentException dacă elementul / argumentul adăugat este ilegal sau nevalid.
Următorul program Java prezintă o demonstrație a tuturor metodelor ListIterator de mai sus.
import java.util.*; public class Main{ public static void main(String args()){ //define list and add elements to it ListnameList=new ArrayList(); nameList.add('Savich'); nameList.add('Dane'); nameList.add('Lacey'); nameList.add(1,'James'); System.out.println('Original List:' + nameList); //define a list iterator for this list ListIterator list_itr=nameList.listIterator(); System.out.println('List elements in forward direction:'); //while there are still elements in the list, display next index and element while(list_itr.hasNext()){ System.out.println('Index:'+list_itr.nextIndex()+' Element:'+list_itr.next()); } //call set() method to set next value to 'Sally' list_itr.set('Sally'); System.out.println('
List after set('Sally'):' + nameList); //while there are elements in the list, display previous index and element System.out.println('
List elements in backward direction:'); while(list_itr.hasPrevious()){ System.out.println('Index:'+list_itr.previousIndex()+' Element:'+list_itr.previous()); } //call remove () method list_itr.remove(); System.out.println('List after remove():' + nameList); } }
Ieșire:
Interfață ListIterator în exemple Java
Să vedem un alt exemplu de utilizare a ListIterator. În acest program, avem un ArrayList de valori întregi. Apoi folosind ListIterator parcurgem lista și afișăm elementele listei.
De asemenea, alegem doar elemente pare în ArrayList și le schimbăm valorile în numere impare folosind metodele ListIterator.
import java.util.ArrayList; import java.util.ListIterator; public class Main { public static void main(String() args) { //define ArrayList and add values to it using for loop ArrayList intList = new ArrayList(); for (int i = 0; i <10; i++) intList.add(i+2); System.out.println('Original ArrayList:' + intList); // define the ListIterator ListIterator list_itr = intList.listIterator(); System.out.println('List elements using listIterator:'); //while list has more elements while (list_itr.hasNext()) { //retrieve next element int i = (Integer)list_itr.next(); // print the element System.out.print(i + ' '); // change only even numbers to odd by setting value = value +1 to current element if (i%2==0) { list_itr.set(i+1); // set method to change value } } System.out.println(); System.out.println('Final ArrayList of odd values:' + intList); } }
Ieșire:
întrebări frecvente
Q # 1) Ce se înțelege prin iterator?
Răspuns: Iterator este o interfață care face parte din cadrul de colecție în Java. Această interfață este prezentă în pachetul java.util. Interfața iteratorului este utilizată pentru a itera prin colecția de obiecte.
Q # 2) Ce este o interfață iterator în Java?
Răspuns: O interfață iterator în Java este utilizată în locul Enumerărilor care au fost utilizate anterior în Java Collection Framework. Interfața iteratorului este prezentă în Java de la versiunea 1.2.
Folosind această interfață puteți itera prin orice colecții Java și puteți procesa elementele colecției.
Q # 3) La ce folosește metoda listIterator () în Java?
Răspuns: Metoda listIterator () aparține pachetului java.util. *. Această metodă returnează un iterator de listă pentru obiectul listă special care l-a invocat și poate fi folosit pentru a parcurge listele și elementele de acces. ListIterator funcționează numai la implementările listei.
diferența dintre redirecționarea portului și declanșarea
Q # 4) Iteratorul este o clasă sau o interfață?
Răspuns: Iterator nu este o clasă, ci un interfață în Java . Interfața Iterator poate fi implementată de celelalte clase și utilizată pentru a itera prin elemente de listă sau colecție.
Q # 5) Câte tipuri de iteratori există în Java?
Răspuns: Iteratorii din Java sunt de trei tipuri:
- Enumerări: Aceasta este o interfață care este utilizată pentru a citi elementele din colecții precum Vector, hashtable etc. Fiecare element este numerotat în funcție de poziția sa în colecție.
- Iterator: Puteți numi această interfață universală, deoarece o puteți aplica oricărui obiect de colecție pentru a traversa colecția. Aceasta este o enumerare îmbunătățită, cu funcționalitatea de eliminare, împreună cu capacitatea de a citi un element.
- ListIterator: ListIterator este o interfață care oferă iterația bidirecțională, adică în direcții înainte și înapoi. ListIterator funcționează numai cu implementări de liste, inclusiv LinkedList, ArrayList etc.
Concluzie
Interfața ListIterator în Java este derivată din interfața Iterator. Pe lângă moștenirea directă a metodelor interfeței Iterator, interfața listIterator introduce diferite metode proprii care pot ajuta programatorul să efectueze iterații bidirecționale.
În acest tutorial, am discutat diagrama clasei și diferitele metode ale interfeței ListIterator. De asemenea, am văzut implementarea acestor metode împreună cu modalitățile de parcurgere prin diferite liste.
=> Vizitați aici pentru a vedea seria de antrenament Java pentru toți.
Lectură recomandată
- Interfață Java și tutorial de clasă abstractă cu exemple
- Tutorial JAVA pentru începători: peste 100 de cursuri video Java practice
- Java Iterator: Aflați cum să utilizați Iterators în Java cu exemple
- Tutorial Java Lungime matrice cu exemple de cod
- Matrice Jagged în Java - Tutorial cu exemple
- Inversați o matrice în Java - 3 metode cu exemple
- Cum să sortați o matrice în Java - Tutorial cu exemple
- Caracteristici prominente Java 8 cu exemple de cod