Achterwaarts door een lijst herhalen

1. Overzicht

In deze korte tutorial leren we over verschillende manieren waarop we terug kunnen gaan door een lijst in Java.

2. Iterator in Java

Een Iterator is een interface in het Java Collections Framework waarmee we de elementen in een collectie kunnen herhalen. Het werd geïntroduceerd in Java 1.2 ter vervanging van Opsomming.

3. Achterwaarts herhalen met behulp van Core Java

3.1. Omgekeerd voor Lus

De meest eenvoudige implementatie is om een voor loop naar begin bij het laatste element van de lijst en verlaag de index als we aan het begin van de lijst komen:

voor (int i = list.size (); i--> 0;) {System.out.println (list.get (i)); }

3.2. ListIterator

We kunnen een ListIterator om de elementen in de lijst te herhalen.

De grootte van de lijst opgeven als een index voor het ListIterator geeft ons een iterator die naar het einde van de lijst verwijst:

ListIterator listIterator = list.listIterator (list.size ());

Met deze iterator kunnen we de lijst nu in omgekeerde richting doorlopen:

while (listIterator.hasPrevious ()) {System.out.println (listIterator.previous ()); }

3.3. Collections.reverse ()

De Collecties class in Java biedt een statische methode om de volgorde van elementen in een opgegeven lijst om te keren:

Collections.reverse (lijst);

De omgekeerde lijst kan vervolgens worden gebruikt om achterwaarts over de originele elementen te herhalen:

voor (String-item: lijst) {System.out.println (item); }

Deze methode keert de feitelijke lijst om door de volgorde van de elementen op hun plaats te veranderen, en kan in veel gevallen niet wenselijk zijn.

4. Achterwaarts herhalen met behulp van Apache's ReverseListIterator

De Apache Commons-collecties bibliotheek heeft een mooie ReverseListIterator class waarmee we de elementen in een lijst kunnen doorlopen zonder deze daadwerkelijk om te keren.

Voordat we beginnen, moeten we de nieuwste afhankelijkheden importeren vanuit Maven Central:

     org.apache.commons commons-collections4 4.1 

We kunnen een nieuw creëren ReverseListIterator door de originele lijst door te geven als een constructorparameter:

ReverseListIterator reverseListIterator = nieuwe ReverseListIterator (lijst);

We kunnen dan deze iterator gebruiken om de lijst achteruit te doorlopen:

while (reverseListIterator.hasNext ()) {System.out.println (reverseListIterator.next ()); }

5. Achterwaarts itereren met behulp van Guava's Lists.reverse ()

Evenzo is het Google Guava-bibliotheek biedt ook een statisch omgekeerde() methode in zijn Lijsten klasse dat geeft een omgekeerde weergave van de verstrekte lijst.

De nieuwste Guava-versie is te vinden op Maven Central:

     com.google.guava guave 25.0 

Het aanroepen van de statische methode omgekeerde() op de Lijsten class geeft ons de lijst op een omgekeerde manier:

List reversedList = Lists.reverse (lijst);

De omgekeerde lijst kan vervolgens worden gebruikt om de oorspronkelijke lijst achteruit te herhalen:

for (String-item: reversedList) {System.out.println (item); }

Deze methode geeft een nieuwe lijst terug met de elementen van de oorspronkelijke lijst in omgekeerde volgorde.

6. Conclusie

In dit artikel hebben we gekeken naar verschillende manieren om achteruit door een lijst in Java te lopen. We hebben enkele voorbeelden doorgenomen met kern-Java, evenals met behulp van populaire bibliotheken van derden.

De broncode voor dit artikel en de relevante testcases zijn beschikbaar op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found