listiterator interface java with examples
Ovaj vodič objašnjava sučelje ListIterator u Javi za prelazak s implementacija popisa. Naučit ćete o dijagramu razreda i metodama sučelja ListIterator:
Baš kao i Iterator, sučelje ListIterator pruža funkcionalnost za kretanje kroz implementacije popisa u Javi i pristup elementima popisa.
=> Ovdje pogledajte kako biste ovdje vidjeli A-Z Java tutorijala za obuku.
Što ćete naučiti:
ListIterator sučelje u Javi
Neke od glavnih karakteristika sučelja ListIterator navedene su u nastavku:
- ListIterator je predstavljen u Javi 1.2
- ListIterator je podsklop sučelja Iterator tj. Proteže se od sučelja Iterator.
- ListIterator radi samo s implementacijama popisa.
- ListIterator podržava sve operacije, naime, stvaranje, čitanje, ažuriranje i brisanje. (Skupno nazvane CRUD operacije).
- ListIterator je dvosmjerni Iterator i podržava iteratore naprijed i natrag.
- U slučaju ListIterator, nema trenutnog elementa. Položaj kursora usmjeren je na mjesto između elementa vraćenog prethodnom () metodom i elementa koji bi se vratio sljedećom () metodom.
Razgovarajmo više o ovom sučelju u ovom vodiču.
Dijagram klase ListIterator
ListIterator je sučelje koje pripada okviru zbirke API. Ovo sučelje proteže se od sučelja Iterator. Osim što nasljeđuje metode sučelja Iterator, također podržava metode za dvosmjerne iteracije i CRUD operacije.
Dijagram klasa sučelja ListIterator prikazan je u nastavku.

Gornja slika prikazuje dijagram klasa sučelja ListIterator. U sljedećem odjeljku detaljno ćemo razmotriti svaku od metoda prikazanih na slici.
Metode ListIteratora
ListIterator sučelje pruža sljedeće metode kao što je prikazano u donjoj tablici.
| Naziv metode | Prototip | Opis |
|---|---|---|
| ukloniti() | ukloni prazninu () | Uklanja posljednji element vraćen metodom next () ili previous (). |
| hasNext () | boolean hasNext () | Provjerava ima li listIterator više elemenata za kretanje u smjeru naprijed. |
| Sljedeći() | Sljedeća () | Vraća sljedeći element na popisu. Zatim pomiče kursor da usmjeri na sljedeći element. |
| hasPrevious () | boolean hasPrevious () | Provjerava ima li ListIterator više elemenata u smjeru natrag / natrag. |
| prethodni () | E prethodna () | Vraća prethodni element na popisu i pomiče kursor na jedan položaj u nazad. |
| nextIndex () | int nextIndex () | Vraća indeks elementa koji će se vratiti pozivom na next () metodu. |
| previousIndex () | int previousIndex () | Vraća indeks elementa koji će se vratiti pozivom na prethodnu () metodu. |
| sedam) | praznina (E i) | Zamjenjuje zadnji element vraćen metodom next () ili previous () novom vrijednošću. |
| dodaj (E) | poništi dodaj (E e) | Popisu dodaje novi element. |
Zatim ćemo detaljno opisati svaku od ovih metoda.
# 1) hasNext ()
Prototip: boolean hasNext ()
Parametri: NULA
Povratna vrijednost:
- true => popis ima sljedeći element
- Lažno => popis nema više elemenata
Opis: Ova metoda provjerava ima li ListIterator više elemenata za prelazak u smjeru naprijed. Ako ima više elemenata, ova metoda vraća true.
# 2) sljedeći ()
Prototip: Sljedeća ()
Parametri: NULA
Povratna vrijednost: E => sljedeći element na popisu.
Opis: Metoda next () vraća sljedeći element na popisu i pomiče kursor na sljedeći element.
Bačena iznimka: NoSuchElementException - ako ListIterator nema sljedeći element.
# 3) hasPrevious ()
Prototip: boolean hasPrevious ()
Parametri: NULA
Povratna vrijednost: true => ListIterator ima prethodni element
Opis: Provjerava ima li ListIterator više elemenata u smjeru natrag / natrag.
# 4) prethodni ()
Prototip: E prethodna ()
Parametri: NULA
Povratna vrijednost: E => prethodni element na popisu
Opis: Ova metoda vraća prethodni element na popisu dok se kreće unatrag, a zatim pomiče kursor unatrag.
Bačena iznimka: NoSuchElementException - ako ListIterator nema sljedeći element.
# 5) nextIndex ()
Prototip: int nextIndex ()
Parametri: NULA
Povratna vrijednost: int => indeks elementa koji će se vratiti metodom next () ili veličinom popisa ako je ListIterator na kraju popisa.
Opis: Ova se metoda može pozvati prije sljedeće () metode. Metoda nextIndex () vraća indeks elementa koji će se vratiti metodom next (). Ako se ListIterator nalazi na kraju popisa, tada ova metoda vraća veličinu popisa.
# 6) previousIndex ()
Prototip: int previousIndex ()
Parametri: NULA
Povratna vrijednost: int => indeks elementa koji će se vratiti prethodnom () metodom ili -1 ako je ListIterator na početku popisa.
Opis: Ova se metoda može pozvati prije prethodne () metode. Metoda previousIndex () vraća indeks elementa koji će vratiti metoda previous (). Ako je ListIterator na početku popisa, tada metoda vraća -1.
# 7) ukloni ()
Prototip: ukloni prazninu ()
Parametri: NULA
Povratna vrijednost: poništiti
Opis: Metoda remove () briše zadnji element koji je vraćen prethodnom () ili next () metodom. Poziv metode remove () može se uputiti samo jednom po pozivu sljedeće () ili prethodne () metode.
Bačena iznimka:
- UnsupportedOperationException - ListIterator ne podržava operaciju uklanjanja.
- IllegalStateException - Ako je trenutna operacija u nedozvoljenom stanju, tj. Ni sljedeći ni prethodni još nisu pozvani ili nakon poziva na sljedeći ili prethodni, dodavanje ili uklanjanje nisu pozvani.
# 8) set (E)
Prototip: praznina (E i)
Parametri: e => novi element s kojim stari element treba zamijeniti
Povratna vrijednost: poništiti
Opis: Metoda set () postavlja element vraćen bilo prethodnom () ili sljedećom () metodom s novom vrijednošću prosljeđenom kao argument. Ova se metoda može pozvati samo ako se metoda add () ili remove () ne pozove nakon posljednjeg poziva metode previous () ili next ().
Bačena iznimka:
- UnsupportedOperationException - ListIterator ne podržava postavljenu operaciju.
- ClassCastException - Ako se navedeni element ne može dodati zbog svoje klase.
- IllegalArgumentException - Ako je dodani element / argument nezakonit ili nevaljan.
- IllegalStateException - Ako je trenutna operacija u nedozvoljenom stanju, tj. Ni sljedeći ni prethodni još nisu pozvani ili nakon poziva na sljedeći ili prethodni, dodavanje ili uklanjanje nisu pozvani.
# 9) dodaj (E)
Prototip: poništi dodaj (E e)
Parametri: e => novi element koji se dodaje na popis
Povratna vrijednost: poništiti
Opis: Metoda add () koristi se za dodavanje novog elementa na popis. Element se dodaje neposredno prije elementa koji bi se vratio next (), ako postoji, i nakon elementa koji bi vratila prethodna () metoda.
Imajte na umu da kao rezultat dodavanja elementa ne bi došlo do promjene koja bi vratila vrijednost next (), ali prethodna () metoda vratit će samo dodani element.
najbolji besplatni softver za čišćenje za Windows 10
Bačena iznimka:
- UnsupportedOperationException - ListIterator ne podržava metodu dodavanja.
- ClassCastException ako je navedeni element koji se ne može dodati zbog svoje klase.
- IllegalArgumentException ako je dodani element / argument nezakonit ili nevaljan.
Sljedeći Java program prikazuje demonstraciju svih gore navedenih metoda ListIterator.
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); } } Izlaz:

ListIterator sučelje u Java primjerima
Pogledajmo još jedan primjer korištenja ListIterator. U ovom programu imamo ArrayList cjelobrojnih vrijednosti. Zatim pomoću ListIterator prelazimo preko popisa i prikazujemo elemente popisa.
Također, biramo samo parne elemente u ArrayListu i mijenjamo njihove vrijednosti u neparne brojeve pomoću metoda 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); } }Izlaz:

Često postavljana pitanja
P # 1) Što se podrazumijeva pod iteratorom?
Odgovor: Iterator je sučelje koje je dio okvira Collection u Javi. Ovo sučelje je prisutno u paketu java.util. Sučelje iteratora koristi se za itiriranje kroz zbirku objekata.
P # 2) Što je iteratorsko sučelje u Javi?
Odgovor: Sučelje iteratora u Javi koristi se umjesto nabrajanja koja su se prethodno koristila u okviru Java Collection Framework. Sučelje iteratora prisutno je u Javi od verzije 1.2.
Korištenjem ovog sučelja možete se kretati kroz bilo koje Java kolekcije i obrađivati elemente kolekcije.
P # 3) Čemu služi metoda listIterator () u Javi?
Odgovor: Metoda listIterator () pripada paketu java.util. *. Ova metoda vraća iterator popisa za određeni objekt popisa koji ga je pozvao i može se koristiti za prelazak popisa i pristupa elementima. ListIterator radi samo na implementacijama popisa.
P # 4) Je li iterator klasa ili sučelje?
Odgovor: Iterator nije klasa već an sučelje u Javi . Sučelje iteratora mogu implementirati ostale klase i koristiti se za iterariranje kroz popis ili elemente zbirke.
P # 5) Koliko vrsta iteratora postoji na Javi?
Odgovor: Iteratori u Javi su tri vrste:
- Popisi: Ovo je sučelje koje se koristi za čitanje elemenata iz zbirki poput Vector, hashtable itd. Svaki je element numeriran prema položaju u zbirci.
- Iterator: Ovo sučelje možete nazvati univerzalnim jer ga možete primijeniti na bilo koji objekt zbirke za prolazak kroz zbirku. Ovo je poboljšana enumeracija s funkcijom uklanjanja zajedno sa sposobnošću čitanja elementa.
- ListIterator: ListIterator je sučelje koje pruža dvosmjernu iteraciju, tj. U smjeru naprijed i natrag. ListIterator radi samo s implementacijama popisa, uključujući LinkedList, ArrayList itd.
Zaključak
ListIterator sučelje u Javi izvedeno je iz Iterator sučelja. Uz izravno nasljeđivanje metoda sučelja Iterator, sučelje listIterator uvodi i vlastite metode koje mogu pomoći programeru u izvođenju dvosmjerne iteracije.
U ovom uputstvu raspravljali smo o dijagramu klasa i raznim metodama sučelja ListIterator. Također smo vidjeli primjenu ovih metoda zajedno s načinima prelaska kroz razne popise.
=> Posjetite ovdje da biste vidjeli seriju Java treninga za sve.
Preporučena literatura
- Java sučelje i udžbenik klase sažetak sa primjerima
- JAVA Tutorial za početnike: 100+ praktičnih Java Video tutorijala
- Java Iterator: Naučite s primjerima koristiti Iterator u Javi
- Vodič za dužinu Java polja s primjerima koda
- Nazubljeni niz u Javi - Vodič s primjerima
- Obrnuti niz u Javi - 3 metode s primjerima
- Kako sortirati niz u Javi - Vodič sa primjerima
- Istaknute značajke Java 8 s primjerima koda