Egy listán keresztül visszafelé iterálva

1. Áttekintés

Ebben a gyors oktatóanyagban megismerkedhetünk a Java-ban található listán keresztüli visszafelé történő iterálás különféle módjaival.

2. Iterátor Java-ban

An Iterátor egy olyan felület a Java Collections Framework-ben, amely lehetővé teszi számunkra, hogy iteráljunk a gyűjtemény elemein. A Java 1.2-ben helyettesítették Felsorolás.

3. Visszafelé ismétlés a Core Java használatával

3.1. Megfordítva mert Hurok

A legegyszerűbb megvalósítás az a használata mert hurok ahhoz kezdje a lista utolsó elemétől, és csökkentse az indexet amint elérjük a lista elejét:

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

3.2. ListIterator

Használhatjuk a ListIterator hogy a lista elemei között ismétlődjünk.

A lista méretének megadása indexként a ListIterator iterátort ad a lista végére:

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

Ez az iterátor lehetővé teszi, hogy a listát fordított irányban haladjuk:

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

3.3. Collections.reverse ()

A Gyűjtemények osztály a Java-ban statikus módszert biztosít a megadott listában szereplő elemek sorrendjének megfordítására:

Gyűjtemények.fordítva (lista);

Ezután a megfordított lista felhasználható az eredeti elemek visszafelé történő ismétlésére:

a (String item: list) {System.out.println (elem); }

Ez a módszer azonban megfordítja a tényleges listát az elemek helyének sorrendjének megváltoztatásával, és sok esetben nem lehet kívánatos.

4. Visszafelé ismétlés az Apache-ok használatával ReverseListIterator

A Apache Commons Gyűjtemények a könyvtárnak szép ReverseListIterator osztály, amely lehetővé teszi számunkra, hogy végignézzük a lista elemeit anélkül, hogy valóban megfordítanánk.

Mielőtt elkezdenénk, be kell importálnunk a legújabb függőségeket a Maven Centralból:

     org.apache.commons commons-gyűjtemények4 4.1 

Készíthetünk újat ReverseListIterator az eredeti lista konstruktorparaméterként való átadásával:

ReverseListIterator reverseListIterator = új ReverseListIterator (lista);

Ezután ezt az iterátort használhatjuk a lista hátralépéséhez:

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

5. Iterálás visszafelé a Guava használatával Lists.reverse ()

Hasonlóképpen a A Google Guava könyvtár szintén statikus fordított() módszer annak Listák osztály amely a megadott lista fordított nézetét adja vissza.

A Guava legújabb verziója megtalálható a Maven Central oldalán:

     com.google.guava guava 25.0 

A statikus módszer meghívása fordított() a Listák osztály fordított módon adja meg a listát:

List reversedList = Lists.reverse (lista);

Ezután a megfordított lista felhasználható az eredeti lista visszafelé történő ismétlésére:

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

Ez a módszer új listát ad vissza az eredeti lista elemeivel fordított sorrendben.

6. Következtetés

Ebben a cikkben a visszafelé történő iterálás különböző módjait vizsgáltuk meg a Java-listán keresztül. Végigvizsgáltunk néhány példát az alapvető Java használatával, valamint a népszerű, harmadik féltől származó könyvtárak használatával.

A cikk és a vonatkozó tesztesetek forráskódja elérhető a GitHub oldalon.


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