listiterator interface java with examples
Deze tutorial legt de ListIterator-interface in Java uit om lijstimplementaties te doorlopen. U leert over het klassendiagram en de methoden van de ListIterator-interface:
Net als Iterator biedt de ListIterator-interface de functionaliteit om door de lijstimplementaties in Java te bladeren en toegang te krijgen tot de elementen van de lijst.
Kijk hier om AZ van Java-trainingshandleidingen hier te zien.
Wat je leert:
wat is een netwerksleutel voor wifi
ListIterator-interface in Java
Enkele van de belangrijkste kenmerken van de ListIterator-interface worden hieronder vermeld:
- ListIterator is geïntroduceerd in Java 1.2
- ListIterator is een subinterface van de Iterator-interface, d.w.z. het strekt zich uit van de Iterator-interface.
- ListIterator werkt alleen met lijstimplementaties.
- ListIterator ondersteunt alle bewerkingen, namelijk maken, lezen, bijwerken en verwijderen. (Gezamenlijk CRUD-operaties genoemd).
- ListIterator is een bi-directionele iterator en ondersteunt zowel voorwaartse als achterwaartse iteratoren.
- In het geval van ListIterator is er geen huidig element. De cursorpositie verwijst naar de locatie tussen het element dat wordt geretourneerd door de methode previous () en het element dat wordt geretourneerd door de methode next ().
Laten we in deze tutorial meer over deze interface bespreken.
ListIterator Class Diagram
ListIterator is een interface die behoort tot het Collections API-framework. Deze interface strekt zich uit van de Iterator-interface. Naast het erven van de methoden van de Iterator-interface, ondersteunt het ook de methoden voor bi-directionele iteraties en CRUD-bewerkingen.
Het klassendiagram van de ListIterator-interface wordt hieronder weergegeven.
De bovenstaande afbeelding toont het klassendiagram van de ListIterator-interface. In de volgende sectie zullen we elk van de methoden die in de afbeelding worden getoond in detail bespreken.
ListIterator-methoden
De ListIterator-interface biedt de volgende methoden, zoals weergegeven in de onderstaande tabel.
Methode naam | Voorlopig ontwerp | Omschrijving |
---|---|---|
verwijderen() | leegte verwijderen () | Verwijdert het laatste element dat is geretourneerd door de methode next () of previous (). |
hasNext () | boolean hasNext () | Controleert of listIterator meer elementen heeft om in voorwaartse richting te doorlopen. |
De volgende() | E volgende () | Retourneert het volgende element in de lijst. Verplaatst vervolgens de cursor om naar het volgende element te wijzen. |
hasPrevious () | boolean hasPrevious () | Controleert of ListIterator meer elementen achterwaarts / achterwaarts heeft. |
vorige () | E vorige () | Retourneert het vorige element in de lijst en verplaatst de cursor één positie in achterwaartse richting. |
volgendeIndex () | int nextIndex () | Retourneert de index van het element dat wordt geretourneerd door de methode next () aan te roepen. |
vorigeIndex () | int previousIndex () | Retourneert de index van het element dat wordt geretourneerd door de methode previous () aan te roepen. |
zeven) | leegte set (E en) | Vervangt het laatste element dat wordt geretourneerd door de methode next () of previous () door de nieuwe waarde. |
toevoegen (E) | ongeldig toevoegen (E e) | Voegt een nieuw element toe aan de lijst. |
Vervolgens zullen we elk van deze methoden in detail beschrijven.
# 1) hasNext ()
Voorlopig ontwerp: boolean hasNext ()
Parameters: NIL
Winstwaarde:
- true => lijst heeft het volgende element
- False => lijst heeft geen elementen meer
Omschrijving: Deze methode controleert of de ListIterator meer elementen heeft om in voorwaartse richting te doorlopen. Als het meer elementen heeft, retourneert deze methode true.
# 2) volgende ()
Voorlopig ontwerp: E volgende ()
Parameters: NIL
Winstwaarde: E => volgend element in de lijst.
Omschrijving: De methode next () retourneert het volgende element in de lijst en verplaatst de cursor naar het volgende element.
Uitzondering geworpen: NoSuchElementException - als de ListIterator geen volgend element heeft.
# 3) hasPrevious ()
Voorlopig ontwerp: boolean hasPrevious ()
Parameters: NIL
Winstwaarde: true => de ListIterator heeft het vorige element
Omschrijving: Controleert of ListIterator meer elementen achterwaarts / achterwaarts heeft.
# 4) vorige ()
Voorlopig ontwerp: E vorige ()
Parameters: NIL
Winstwaarde: E => vorig element in de lijst
Omschrijving: Deze methode retourneert het vorige element in de lijst terwijl u achteruit gaat en verplaatst de cursor vervolgens achteruit.
Uitzondering geworpen: NoSuchElementException - als de ListIterator geen volgend element heeft.
# 5) nextIndex ()
Voorlopig ontwerp: int nextIndex ()
Parameters: NIL
Winstwaarde: int => index van het element dat zal worden geretourneerd door de methode next () of grootte van de lijst als ListIterator aan het einde van de lijst staat.
Omschrijving: Deze methode kan worden aangeroepen vóór de methode next (). De methode nextIndex () retourneert de index van het element dat wordt geretourneerd door de methode next (). Als de ListIterator aan het einde van de lijst staat, retourneert deze methode de lijstgrootte.
# 6) vorigeIndex ()
Voorlopig ontwerp: int previousIndex ()
Parameters: NIL
Winstwaarde: int => index van het element dat wordt geretourneerd door de methode previous () of -1 als ListIterator aan het begin van de lijst staat.
Omschrijving: Deze methode kan worden aangeroepen vóór de vorige () - methode. De methode previousIndex () retourneert de index van het element dat wordt geretourneerd door de methode previous (). Als de ListIterator aan het begin van de lijst staat, retourneert de methode -1.
# 7) verwijderen ()
Voorlopig ontwerp: leegte verwijderen ()
Parameters: NIL
Winstwaarde: leegte
Omschrijving: De methode remove () verwijdert het laatste element dat werd geretourneerd door de methode previous () of next (). De aanroep van de methode remove () kan slechts één keer per aanroep naar de volgende () of vorige () methode worden gedaan.
Uitzondering geworpen:
- UnsupportedOperationException - ListIterator ondersteunt geen verwijderingsbewerking.
- IllegalStateException - Als de huidige bewerking de status Illegaal heeft, d.w.z. noch volgende noch vorige is nog aangeroepen of na de aanroep naar volgende of vorige, dan is toevoegen of verwijderen niet aangeroepen.
# 8) set (E)
Voorlopig ontwerp: leegte set (E en)
Parameters: e => nieuw element waarmee oud element moet worden vervangen
Winstwaarde: leegte
Omschrijving: De methode set () stelt het element in dat wordt geretourneerd door de methode previous () of next () waarbij de nieuwe waarde wordt doorgegeven als argument. Deze methode kan alleen worden aangeroepen als de methode add () of remove () niet wordt aangeroepen na de laatste aanroep van methode previous () of next ().
Uitzondering geworpen:
- UnsupportedOperationException - ListIterator ondersteunt de ingestelde bewerking niet.
- ClassCastException - Als het opgegeven element niet kan worden toegevoegd vanwege zijn klasse.
- IllegalArgumentException - Als het element / argument dat wordt toegevoegd ongeldig of ongeldig is.
- IllegalStateException - Als de huidige bewerking de status Illegaal heeft, d.w.z. noch volgende noch vorige is nog aangeroepen of nadat de aanroep naar volgende of vorige is aangeroepen, is toevoegen of verwijderen niet aangeroepen.
# 9) toevoegen (E)
Voorlopig ontwerp: ongeldig toevoegen (E e)
Parameters: e => nieuw element dat aan de lijst moet worden toegevoegd
Winstwaarde: leegte
verschil tussen testcase en testplan
Omschrijving: De add () methode wordt gebruikt om een nieuw element aan de lijst toe te voegen. Het element wordt toegevoegd net voor het element dat de next () zou hebben geretourneerd, indien aanwezig, en na het element dat de vorige () - methode zou hebben geretourneerd.
Merk op dat, als gevolg van het toevoegen van een element, er geen wijziging zou zijn om de waarde van next () te retourneren, maar de vorige () methode zal alleen het toegevoegde element retourneren.
Uitzondering geworpen:
- UnsupportedOperationException - ListIterator ondersteunt de add-methode niet.
- ClassCastException als een gespecificeerd element dat niet kan worden toegevoegd vanwege zijn class.
- IllegalArgumentException als het element / argument dat wordt toegevoegd ongeldig of ongeldig is.
Het volgende Java-programma toont een demonstratie van alle bovenstaande ListIterator-methoden.
Uitgang:
ListIterator-interface in Java-voorbeelden
Laten we nog een voorbeeld bekijken van het gebruik van ListIterator. In dit programma hebben we een ArrayList met gehele getallen. Met behulp van ListIterator doorlopen we de lijst en geven we lijstelementen weer.
We kiezen ook alleen even elementen in de ArrayList en veranderen hun waarden in oneven getallen met behulp van de ListIterator-methoden.
Uitgang:
Veel Gestelde Vragen
V # 1) Wat wordt bedoeld met iterator?
Antwoord: Iterator is een interface die deel uitmaakt van het Collection-framework in Java. Deze interface is aanwezig in het pakket java.util. De iterator-interface wordt gebruikt om door de verzameling objecten te itereren.
Q # 2) Wat is een iterator-interface in Java?
Antwoord: Een iterator-interface in Java wordt gebruikt in plaats van Enumeraties die eerder werden gebruikt in het Java Collection Framework. De iterator-interface is aanwezig in Java sinds versie 1.2.
Met behulp van deze interface kunt u door alle Java-collecties heen lopen en de collectie-elementen verwerken.
V # 3) Wat is het gebruik van de methode listIterator () in Java?
Antwoord: De methode listIterator () hoort bij het pakket java.util. *. Deze methode retourneert een lijst-iterator voor het specifieke lijstobject dat het heeft aangeroepen en kan worden gebruikt om de lijsten en toegangselementen te doorlopen. De listIterator werkt alleen op lijstimplementaties.
V # 4) Is iterator een klasse of een interface?
Antwoord: Iterator is geen klasse maar een interface in Java De Iterator-interface kan worden geïmplementeerd door de andere klassen en worden gebruikt om lijst- of verzamelingselementen te doorlopen.
V # 5) Hoeveel soorten iterators zijn er in Java?
Antwoord: Iterators in Java zijn van drie soorten:
- Opsommingen: Dit is een interface die wordt gebruikt om de elementen uit collecties zoals Vector, hashtabel, etc. te lezen. Elk element is genummerd op basis van zijn positie in de collectie.
- Iterator: U kunt deze interface universeel noemen, omdat u deze op elk verzamelingsobject kunt toepassen om door de verzameling te bladeren. Dit is een verbeterde opsomming met verwijderfunctionaliteit en de mogelijkheid om een element te lezen.
- LijstIterator: ListIterator is een interface die de bi-directionele iteratie biedt, d.w.z. in voorwaartse en achterwaartse richtingen. ListIterator werkt alleen met lijstimplementaties, waaronder LinkedList, ArrayList, etc.
Gevolgtrekking
ListIterator-interface in Java is afgeleid van de Iterator-interface. Naast het rechtstreeks erven van de methoden van de Iterator-interface, introduceert de listIterator-interface verschillende eigen methoden die de programmeur kunnen helpen bij het uitvoeren van bidirectionele iteratie.
In deze tutorial hebben we het klassendiagram en de verschillende methoden van de ListIterator-interface besproken. We hebben ook de implementatie van deze methoden gezien, samen met de manieren om door verschillende lijsten te bladeren.
Bezoek hier om de Java-trainingsserie voor iedereen te zien.
Aanbevolen literatuur
- Java-interface en abstracte les met voorbeelden
- JAVA-zelfstudie voor beginners: 100+ praktische Java-videotutorials
- Java Iterator: leer iterators te gebruiken in Java met voorbeelden
- Zelfstudie over Java-array-lengte met codevoorbeelden
- Jagged Array in Java - Tutorial met voorbeelden
- Keer een array in Java om - 3 methoden met voorbeelden
- Hoe een array in Java te sorteren - Tutorial met voorbeelden
- Prominente Java 8-functies met codevoorbeelden