Mengulangi Kemunduran Melalui Senarai

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan belajar tentang pelbagai cara di mana kita dapat melakukan perjalanan mundur melalui senarai di Java.

2. Iterator di Jawa

An Pelelar adalah satu antara muka dalam Rangka Kerja Collections Java yang membolehkan kita untuk melelar lebih elemen dalam koleksi. Ia diperkenalkan di Java 1.2 sebagai pengganti Enumerasi.

3. Pengulangan ke Belakang Menggunakan Java Core

3.1. Dibalikkan untuk Gelung

Pelaksanaan yang paling mudah adalah menggunakan loop for untuk bermula dari elemen terakhir dalam senarai, dan mengurangkan indeks ketika kita mencapai permulaan senarai:

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

3.2. Penyenaraikan Senarai

Kita boleh menggunakan ListIterator untuk mengulangi elemen dalam senarai.

Menyediakan ukuran senarai sebagai indeks ke ListIterator akan memberi kita iterator yang menunjuk ke akhir senarai:

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

Pengulangan ini sekarang membolehkan kita melintasi senarai ke arah terbalik:

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

3.3. Koleksi.balik ()

The Collections kelas di Jawa menyediakan kaedah statik untuk menterbalikkan susunan elemen dalam senarai tertentu:

Collections.reverse(list);

Senarai terbalik kemudian boleh digunakan untuk mengulangi ke belakang elemen asal:

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

Kaedah ini, bagaimanapun, membalikkan senarai sebenar dengan mengubah susunan elemen di tempat , dan mungkin tidak diinginkan dalam banyak kes.

4. Mengulangi Kemunduran Menggunakan ReverseListIterator Apache

The Apache Commons Koleksi perpustakaan mempunyai nice ReverseListIterator kelas yang membolehkan kita untuk gelung melalui unsur-unsur dalam senarai tanpa benar-benar menterbalikkan ia.

Sebelum memulakan, kita perlu mengimport pergantungan terkini dari Maven Central:

     org.apache.commons     commons-collections4     4.1 

Kita boleh membuat ReverseListIterator baru dengan meneruskan senarai asal sebagai parameter pembina:

ReverseListIterator reverseListIterator = new ReverseListIterator(list);

Kita kemudian boleh menggunakan iterator ini untuk melintasi senarai ke belakang:

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

5. Mengulangi Kemunduran Menggunakan Daftar Jambu Batu. Terbalik ()

Begitu juga, perpustakaan Google Guava juga menyediakan statik terbalik () kaedah dalam fiturnya Senarai kelas yang pulangan pandangan belakang senarai yang disediakan.

Versi Jambu Terkini boleh didapati di Maven Central:

     com.google.guava     guava     25.0 

Memohon kaedah statik yang terbalik () pada Senarai kelas memberikan kita senarai dalam cara yang diterbalikkan:

List reversedList = Lists.reverse(list);

Senarai terbalik kemudian dapat digunakan untuk mengulangi mundur dari senarai asal:

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

Kaedah ini mengembalikan senarai baru dengan unsur-unsur senarai asal dalam urutan terbalik .

6. Kesimpulannya

Dalam artikel ini, kami telah melihat cara-cara yang berbeza untuk mengundurkan ke belakang melalui senarai di Java. Kami melalui beberapa contoh menggunakan Java inti, dan juga menggunakan perpustakaan pihak ketiga yang popular.

Kod sumber untuk artikel ini dan kes ujian yang berkaitan boleh didapati di GitHub.