listiterator interface java with examples
Denne opplæringen forklarer ListIterator-grensesnittet i Java for å gjennomføre implementeringer av listen. Du vil lære om klassediagram og metoder for ListIterator-grensesnitt:
Akkurat som Iterator, gir ListIterator-grensesnittet funksjonaliteten til å krysse gjennom listeimplementeringene i Java og få tilgang til elementene i listen.
=> Sjekk her for å se AZ av Java-opplæringsveiledninger her.
Hva du vil lære:
ListIterator-grensesnitt i Java
Noen av hovedegenskapene til ListIterator-grensesnittet er listet opp nedenfor:
- ListIterator ble introdusert i Java 1.2
- ListIterator er et undergrensesnitt til Iterator-grensesnittet, dvs. det strekker seg fra Iterator-grensesnittet.
- ListIterator fungerer bare med listeimplementeringer.
- ListIterator støtter alle operasjoner, nemlig Opprett, Les, Oppdater og Slett. (Samlet kalt CRUD-operasjoner).
- ListIterator er en toveis Iterator og støtter iteratorer både fremover og bakover.
- For ListIterator er det ingen nåværende element. Markørposisjonen peker mot plasseringen mellom elementet som returneres av forrige () -metoden og elementet som vil bli returnert av neste () -metode.
La oss diskutere mer om dette grensesnittet i denne opplæringen.
ListIterator klassediagram
ListIterator er et grensesnitt som tilhører Collections API-rammeverket. Dette grensesnittet strekker seg fra Iterator-grensesnittet. Bortsett fra å arve metodene til Iterator-grensesnittet, støtter den også metodene for toveis iterasjoner og CRUD-operasjoner.
Klassediagrammet til ListIterator-grensesnittet er vist nedenfor.
test tilfeller i programvare testing eksempler
Ovenstående figur viser klassediagrammet til ListIterator-grensesnittet. I neste avsnitt vil vi diskutere hver av metodene vist i figuren i detalj.
ListIterator Methods
ListIterator-grensesnittet gir følgende metoder som vist i tabellen nedenfor.
Metodenavn | Prototype | Beskrivelse |
---|---|---|
ta vekk() | ugyldig fjerne () | Fjerner det siste elementet som returneres enten ved neste () eller forrige () metode. |
hasNext () | boolsk hasNext () | Kontrollerer om listIterator har flere elementer å krysse i retning fremover. |
neste () | E neste () | Returnerer neste element i listen. Flytt deretter markøren for å peke på neste element. |
hasPrevious () | boolsk hasPrevious () | Sjekker om ListIterator har flere elementer i bakover / bakover retning. |
tidligere() | E forrige () | Returnerer forrige element i listen og flytter markøren til en posisjon i retning bakover. |
nextIndex () | int nextIndex () | Returnerer indeks for elementet som returneres ved anrop til neste () metode. |
previousIndex () | int previousIndex () | Returnerer indeksen til elementet som returneres ved anrop til forrige () -metode. |
syv) | ugyldig sett (E og) | Erstatter det siste elementet som ble returnert av enten neste () eller forrige () metode med den nye verdien. |
legg til (E) | void add (E e) | Legger til nytt element i listen. |
Deretter vil vi beskrive hver av disse metodene i detalj.
# 1) hasNext ()
Prototype: boolsk hasNext ()
Parametere: NIL
Returverdi:
- true => listen har neste element
- False => listen har ikke flere elementer
Beskrivelse: Denne metoden sjekker om ListIterator har flere elementer å krysse fremover. Hvis den har flere elementer, returnerer denne metoden sant.
# 2) neste ()
Prototype: E neste ()
Parametere: NIL
Returverdi: E => neste element i listen.
Beskrivelse: Neste () -metode returnerer neste element i listen og flytter markøren til neste element.
Unntatt kastet: NoSuchElementException - hvis ListIterator ikke har noe neste element.
# 3) hasPrevious ()
Prototype: boolsk hasPrevious ()
Parametere: NIL
Returverdi: true => ListIterator har forrige element
Beskrivelse: Sjekker om ListIterator har flere elementer i bakover / bakover retning.
# 4) forrige ()
Prototype: E forrige ()
Parametere: NIL
Returverdi: E => forrige element i listen
Beskrivelse: Denne metoden returnerer det forrige elementet i listen mens du beveger deg bakover og beveger deretter markøren bakover.
Unntatt kastet: NoSuchElementException - hvis ListIterator ikke har noe neste element.
# 5) nextIndex ()
Prototype: int nextIndex ()
Parametere: NIL
Returverdi: int => indeks for elementet som returneres ved neste () metode eller størrelse på listen hvis ListIterator er på slutten av listen.
Beskrivelse: Denne metoden kan kalles før neste () metode. NextIndex () -metoden returnerer indeksen til elementet som vil bli returnert av neste () -metoden. Hvis ListIterator er på slutten av listen, returnerer denne metoden listestørrelsen.
# 6) previousIndex ()
Prototype: int previousIndex ()
Parametere: NIL
Returverdi: int => indeks for elementet som returneres etter forrige () -metode eller -1 hvis ListIterator er i begynnelsen av listen.
Beskrivelse: Denne metoden kan kalles før den forrige () metoden. Den foregående metoden () returnerer indeksen til elementet som vil bli returnert av den forrige () metoden. Hvis ListIterator er i begynnelsen av listen, returnerer metoden -1.
# 7) fjern ()
Prototype: ugyldig fjerne ()
Parametere: NIL
Returverdi: tomrom
Beskrivelse: Fjern () metoden sletter det siste elementet som ble returnert enten ved forrige () eller neste () metode. Anropet til metoden remove () kan bare foretas en gang per samtale til neste () eller forrige () metode.
Unntatt kastet:
- UnsupportedOperationException - ListIterator støtter ikke fjerningsoperasjon.
- IllegalStateException - Hvis den nåværende operasjonen er i ulovlig tilstand, det vil si at verken neste eller forrige har blitt oppringt ennå eller etter samtalen til neste eller forrige, så er ikke lagt til eller fjern ikke.
# 8) sett (E)
Prototype: ugyldig sett (E og)
Parametere: e => nytt element som det gamle elementet skal byttes ut med
Returverdi: tomrom
Beskrivelse: Metodesettet () angir elementet som returneres av enten forrige () eller neste () -metode, med den nye verdien som er sendt som argument. Denne metoden kan bare kalles hvis add () eller remove () ikke kalles etter den siste samtalen til metoden forrige () eller neste ().
Unntatt kastet:
- UnsupportedOperationException - ListIterator støtter ikke den angitte operasjonen.
- ClassCastException - Hvis det angitte elementet ikke kan legges til på grunn av klassen.
- IllegalArgumentException - Hvis elementet / argumentet som legges til er ulovlig eller ugyldig.
- IllegalStateException - Hvis den nåværende operasjonen er i ulovlig tilstand, det vil si at verken neste eller forrige har blitt oppringt ennå eller etter samtalen til neste eller forrige, har ikke legges til eller fjernet.
# 9) legg til (E)
Prototype: void add (E e)
Parametere: e => nytt element som skal legges til listen
Returverdi: tomrom
Beskrivelse: Metoden add () brukes til å legge til et nytt element i listen. Elementet legges til like før elementet neste () ville ha returnert, hvis noen, og etter elementet som den forrige () metoden ville ha returnert.
Merk at som et resultat av å legge til et element, vil det ikke være noen endring for å returnere verdien til neste (), men den forrige () -metoden returnerer bare elementet som er lagt til.
hvordan åpner du en torrentfil
Unntatt kastet:
- UnsupportedOperationException - ListIterator støtter ikke add-metoden.
- ClassCastException hvis et spesifisert element som ikke kan legges til på grunn av klassen.
- IllegalArgumentException hvis elementet / argumentet som legges til er ulovlig eller ugyldig.
Følgende Java-program viser en demonstrasjon av alle ovennevnte ListIterator-metoder.
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); } }
Produksjon:
ListIterator-grensesnitt i Java-eksempler
La oss se et annet eksempel på bruk av ListIterator. I dette programmet har vi en ArrayList med heltallverdier. Deretter bruker vi ListIterator gjennom listen og viser listeelementene.
Dessuten velger vi bare jevne elementer i ArrayList og endrer verdiene til oddetall ved hjelp av ListIterator-metodene.
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); } }
Produksjon:
ofte stilte spørsmål
Q # 1) Hva menes med iterator?
Svar: Iterator er et grensesnitt som er en del av Collection-rammeverket i Java. Dette grensesnittet er tilstede i java.util-pakken. Iteratorgrensesnittet brukes til å iterere gjennom samlingen av objekter.
Q # 2) Hva er et iteratorgrensesnitt i Java?
Svar: Et iteratorgrensesnitt i Java brukes i stedet for Oppregninger som tidligere ble brukt i Java Collection Framework. Iteratorgrensesnittet er til stede i Java siden versjon 1.2.
Ved hjelp av dette grensesnittet kan du gjenta gjennom alle Java-samlinger og behandle innsamlingselementene.
Q # 3) Hva er bruken av listIterator () -metoden i Java?
Svar: ListIterator () -metoden tilhører pakken java.util. *. Denne metoden returnerer en listeterator for det bestemte listeobjektet som påkalte den, og kan brukes til å krysse listene og tilgangselementene. ListIterator fungerer bare på implementeringer av listen.
hvordan åpne en dat-fil på windows
Q # 4) Er iterator en klasse eller et grensesnitt?
Svar: Iterator er ikke en klasse, men en grensesnitt i Java . Iterator-grensesnittet kan implementeres av de andre klassene og brukes til å iterere gjennom liste- eller samlingselementer.
Q # 5) Hvor mange typer iteratorer er det i Java?
Svar: Iteratorer i Java er av tre typer:
- Oppregninger: Dette er et grensesnitt som brukes til å lese elementene fra samlinger som Vector, hashtable, etc. Hvert element er nummerert i henhold til sin posisjon i samlingen.
- Iterator: Du kan kalle dette grensesnittet for universelt, ettersom du kan bruke det på ethvert samlingsobjekt som du skal krysse samlingen. Dette er en forbedret oppregning med fjernfunksjonalitet sammen med muligheten til å lese et element.
- ListIterator: ListIterator er et grensesnitt som gir toveis iterasjon, dvs. i retning fremover og bakover. ListIterator fungerer bare med listeimplementeringer, inkludert LinkedList, ArrayList, etc.
Konklusjon
ListIterator-grensesnitt i Java er avledet fra Iterator-grensesnittet. I tillegg til å direkte arve metodene til Iterator-grensesnittet, introduserer listIterator-grensesnittet forskjellige metoder som kan hjelpe programmereren til å utføre toveis iterasjon.
I denne opplæringen har vi diskutert klassediagrammet og de forskjellige metodene for ListIterator-grensesnitt. Vi har også sett implementeringen av disse metodene sammen med måtene å krysse gjennom forskjellige lister.
=> Besøk her for å se Java Training Series for alle.
Anbefalt lesing
- Java-grensesnitt og abstrakt klasseopplæring med eksempler
- JAVA-opplæring for nybegynnere: 100+ praktiske Java-videoveiledninger
- Java Iterator: Lær å bruke Iteratorer i Java med eksempler
- Java Array Length Tutorial med kodeeksempler
- Jagged Array In Java - Opplæring med eksempler
- Omvend en matrise i Java - 3 metoder med eksempler
- Hvordan sortere en matrise i Java - Veiledning med eksempler
- Fremtredende Java 8-funksjoner med kodeeksempler