listiterator interface java with examples
Denne vejledning forklarer ListIterator-grænsefladen i Java for at gennemføre implementeringer af listen. Du lærer om klassediagram og metoder til ListIterator-interface:
Ligesom Iterator giver ListIterator-interface funktionaliteten til at krydse gennem listeimplementeringerne i Java og få adgang til elementerne på listen.
=> Tjek her for at se AZ af Java-træningsvejledninger her.
Hvad du vil lære:
ListIterator-interface i Java
Nogle af de vigtigste egenskaber ved ListIterator-grænsefladen er anført nedenfor:
- ListIterator blev introduceret i Java 1.2
- ListIterator er en undergrænseflade til Iterator-grænsefladen, dvs. den strækker sig fra Iterator-grænsefladen.
- ListIterator fungerer kun med listeimplementeringer.
- ListIterator understøtter alle operationer, nemlig Opret, læs, opdater og slet. (Samlet kaldet CRUD-operationer).
- ListIterator er en tovejs Iterator, og den understøtter iteratorer såvel fremad som bagud.
- I tilfælde af ListIterator er der intet aktuelt element. Markørpositionen peges på placeringen mellem elementet, der returneres med den forrige () metode, og det element, der vil blive returneret ved den næste () metode.
Lad os diskutere mere om denne grænseflade i denne vejledning.
ListIterator klassediagram
ListIterator er en grænseflade, der hører til Collections API-rammen. Denne grænseflade strækker sig fra Iterator-grænsefladen. Bortset fra at arve metoderne i Iterator-grænsefladen understøtter den også metoderne til tovejs-iterationer og CRUD-operationer.
hvordan spiller jeg SWF-filer
Klassediagrammet for ListIterator-interface er vist nedenfor.
Ovenstående figur viser klassediagrammet for ListIterator-grænsefladen. I det næste afsnit vil vi diskutere hver af metoderne vist i figuren detaljeret.
ListIterator-metoder
ListIterator-interface giver følgende metoder som vist i nedenstående tabel.
Metodenavn | Prototype | Beskrivelse |
---|---|---|
fjerne() | ugyldig fjern () | Fjerner det sidste element, der returneres enten ved næste () eller forrige () metode. |
hasNext () | boolsk hasNext () | Kontrollerer, om listIterator har flere elementer at krydse fremad. |
Næste() | E næste () | Returnerer det næste element på listen. Flyt derefter markøren for at pege på det næste element. |
hasPrevious () | boolean hasPrevious () | Kontrollerer, om ListIterator har flere elementer i baglæns / omvendt retning. |
Tidligere() | E forrige () | Returnerer det forrige element på listen og flytter markøren til en position bagud. |
næsteIndex () | int nextIndex () | Returnerer indeks for det element, der returneres ved opkald til næste () metode. |
previousIndex () | int previousIndex () | Returnerer indekset for det element, der returneres ved opkald til forrige () metode. |
syv) | ugyldigt sæt (E og) | Erstatter det sidste element, der returneres ved enten næste () eller forrige () metode med den nye værdi. |
tilføj (E) | ugyldig tilføjelse (E e) | Føjer nyt element til listen. |
Dernæst beskriver vi hver af disse metoder i detaljer.
# 1) hasNext ()
Prototype: boolsk hasNext ()
Parametre: NIL
Returværdi:
- true => listen har næste element
- False => listen har ikke flere elementer
Beskrivelse: Denne metode kontrollerer, om ListIterator har flere elementer at krydse fremad. Hvis den har flere elementer, returnerer denne metode sandt.
# 2) næste ()
Prototype: E næste ()
Parametre: NIL
Returværdi: E => næste element på listen.
Beskrivelse: Den næste () metode returnerer det næste element på listen og flytter markøren til det næste element.
Undtagelse kastet: NoSuchElementException - hvis ListIterator ikke har noget næste element.
# 3) hasPrevious ()
Prototype: boolean hasPrevious ()
Parametre: NIL
Returværdi: true => ListIterator har tidligere element
Beskrivelse: Kontrollerer, om ListIterator har flere elementer i baglæns / omvendt retning.
# 4) forrige ()
Prototype: E forrige ()
Parametre: NIL
Returværdi: E => forrige element på listen
Beskrivelse: Denne metode returnerer det forrige element på listen, mens du kører bagud og flytter derefter markøren bagud.
Undtagelse kastet: NoSuchElementException - hvis ListIterator ikke har noget næste element.
# 5) næsteIndex ()
Prototype: int nextIndex ()
Parametre: NIL
Returværdi: int => indeks for det element, der returneres ved den næste () metode eller størrelse på listen, hvis ListIterator er i slutningen af listen.
Beskrivelse: Denne metode kan kaldes før den næste () metode. NextIndex () -metoden returnerer indekset for det element, der returneres ved den næste () -metode. Hvis ListIterator er i slutningen af listen, returnerer denne metode listestørrelsen.
# 6) previousIndex ()
Prototype: int previousIndex ()
Parametre: NIL
Returværdi: int => indeks for det element, der returneres ved den foregående () metode eller -1, hvis ListIterator er i begyndelsen af listen.
Beskrivelse: Denne metode kan kaldes før den forrige () metode. Den foregående metode () returnerer indekset for det element, der returneres efter den foregående metode (). Hvis ListIterator er i begyndelsen af listen, returneres metoden -1.
# 7) fjern ()
Prototype: ugyldig fjern ()
Parametre: NIL
Returværdi: ugyldig
Beskrivelse: Fjern () metoden sletter det sidste element, der blev returneret enten ved den forrige () eller næste () metode. Opkaldet til metoden remove () kan kun foretages en gang pr. Opkald til den næste () eller forrige () metode.
Undtagelse kastet:
- UnsupportedOperationException - ListIterator understøtter ikke fjernbetjening.
- IllegalStateException - Hvis den aktuelle handling er i ulovlig tilstand, dvs. hverken næste eller forrige er blevet kaldt endnu eller efter opkaldet til næste eller forrige, så er tilføjelse eller fjernelse ikke blevet kaldt.
# 8) sæt (E)
Prototype: ugyldigt sæt (E og)
Parametre: e => nyt element, som det gamle element skal udskiftes med
Returværdi: ugyldig
Beskrivelse: Metodesættet () indstiller elementet, der returneres ved enten forrige () eller næste () -metode med den nye værdi, der sendes som et argument. Denne metode kan kun kaldes, hvis add () eller remove () -metoden ikke kaldes efter det sidste opkald til metoden forrige () eller next ().
Undtagelse kastet:
- UnsupportedOperationException - ListIterator understøtter ikke den indstillede handling.
- ClassCastException - Hvis det angivne element ikke kan tilføjes på grund af dets klasse.
- IllegalArgumentException - Hvis elementet / argumentet, der tilføjes, er ulovligt eller ugyldigt.
- IllegalStateException - Hvis den aktuelle handling er i ulovlig tilstand, dvs. hverken næste eller forrige er blevet kaldt endnu eller efter opkaldet til næste eller forrige, er tilføjelse eller fjernelse ikke blevet kaldt.
# 9) tilføj (E)
Prototype: ugyldig tilføjelse (E e)
Parametre: e => nyt element, der skal føjes til listen
Returværdi: ugyldig
Beskrivelse: Metoden add () bruges til at føje et nyt element til listen. Elementet tilføjes lige før elementet, ville det næste () være returneret, hvis der er noget, og efter det element, som den forrige () metode ville have returneret.
Bemærk, at som et resultat af tilføjelse af et element, ville der ikke være nogen ændring for at returnere værdien af next (), men den forrige () metode returnerer kun det tilføjede element.
hvad man skal åbne bin-filer med
Undtagelse kastet:
- UnsupportedOperationException - ListIterator understøtter ikke add-metoden.
- ClassCastException, hvis et specificeret element, der ikke kan tilføjes på grund af dets klasse.
- IllegalArgumentException, hvis elementet / argumentet, der tilføjes, er ulovligt eller ugyldigt.
Følgende Java-program viser en demonstration af alle ovennævnte 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); } }
Produktion:
ListIterator-interface i Java-eksempler
Lad os se et andet eksempel på brug af ListIterator. I dette program har vi en ArrayList med heltalværdier. Derefter bruger vi ListIterator gennem listen og viser elementerne på listen.
Vi vælger også kun lige elementer i ArrayList og ændrer deres værdier til ulige tal ved hjælp af ListIterator-metoderne.
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); } }
Produktion:
Ofte stillede spørgsmål
Q # 1) Hvad menes med iterator?
Svar: Iterator er en grænseflade, der er en del af samlingsrammen i Java. Denne grænseflade findes i java.util-pakken. Iteratorgrænsefladen bruges til at gentage gennem indsamlingen af objekter.
Q # 2) Hvad er en iterator-grænseflade i Java?
Svar: En iterator-grænseflade i Java bruges i stedet for Enumerations, der tidligere blev brugt i Java Collection Framework. Iteratorgrænsefladen er til stede i Java siden version 1.2.
Ved hjælp af denne grænseflade kan du gentage alle Java-samlinger og behandle indsamlingselementerne.
Q # 3) Hvad er brugen af listIterator () -metoden i Java?
Svar: ListIterator () -metoden tilhører pakken java.util. *. Denne metode returnerer en liste iterator for det bestemte listeobjekt, der påberåbte den, og kan bruges til at krydse listerne og adgangselementerne. ListIterator fungerer kun på listeimplementeringer.
hvordan man finder netværkssikkerhedsnøgle på Windows 10
Q # 4) Er iterator en klasse eller en grænseflade?
Svar: Iterator er ikke en klasse, men en interface i Java . Iterator-interface kan implementeres af de andre klasser og bruges til at gentage gennem liste- eller samlingselementer.
Spørgsmål nr. 5) Hvor mange typer iteratorer er der i Java?
Svar: Iteratorer i Java er af tre typer:
- Tællinger: Dette er en grænseflade, der bruges til at læse elementerne fra samlinger som Vector, hashtable osv. Hvert element er nummereret efter dets position i samlingen.
- Iterator: Du kan kalde denne grænseflade universel, da du kan anvende den på ethvert samlingsobjekt, der skal krydses gennem samlingen. Dette er en forbedret optælling med fjernelsesfunktionalitet sammen med evnen til at læse et element.
- ListIterator: ListIterator er en grænseflade, der giver den tovejs iteration, dvs. i retning fremad og bagud. ListIterator fungerer kun med listeimplementeringer inklusive LinkedList, ArrayList osv.
Konklusion
ListIterator-interface i Java stammer fra Iterator-interface. Ud over at direkte arve metoderne til Iterator-grænsefladen introducerer listIterator-grænsefladen forskellige egne metoder, der kan hjælpe programmøren med at udføre tovejs iteration.
I denne vejledning har vi diskuteret klassediagrammet og de forskellige metoder til ListIterator-interface. Vi har også set implementeringen af disse metoder sammen med måderne at krydse gennem forskellige lister.
=> Besøg her for at se Java Training Series for alle.
Anbefalet læsning
- Java-interface og abstrakt klasseundervisning med eksempler
- JAVA-vejledning til begyndere: 100+ praktiske Java-videovejledninger
- Java Iterator: Lær at bruge Iteratorer i Java med eksempler
- Java Array Length Tutorial med kodeeksempler
- Jagged Array In Java - Vejledning med eksempler
- Vend en matrix i Java - 3 metoder med eksempler
- Sådan sorteres en matrix i Java - vejledning med eksempler
- Fremtrædende Java 8-funktioner med kodeeksempler