Iterasi Mundur Melalui Daftar

1. Ikhtisar

Dalam tutorial singkat ini, kita akan belajar tentang berbagai cara untuk mengulang mundur melalui daftar di Java.

2. Iterator di Java

Sebuah Iterator adalah sebuah antarmuka di Jawa Collections Framework yang memungkinkan kita untuk iterate atas unsur-unsur dalam koleksi. Itu diperkenalkan di Java 1.2 sebagai pengganti Pencacahan.

3. Iterasi Mundur Menggunakan Core Java

3.1. Terbalik untuk Loop

Implementasi yang paling sederhana adalah menggunakan perulangan for untuk memulai dari elemen terakhir daftar, dan mengurangi indeks saat kita mencapai awal daftar:

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

3.2. ListIterator

Kita dapat menggunakan ListIterator untuk mengulang elemen dalam daftar.

Memberikan ukuran daftar sebagai indeks ke ListIterator akan memberi kita iterator yang menunjuk ke akhir daftar:

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

Iterator ini sekarang memungkinkan kita melintasi daftar ke arah sebaliknya:

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

3.3. Collections.reverse ()

Kelas Collections di Java menyediakan metode statis untuk membalik urutan elemen dalam daftar yang ditentukan:

Collections.reverse(list);

Daftar terbalik kemudian dapat digunakan untuk mengulangi elemen asli ke belakang:

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

Metode ini, bagaimanapun, membalik daftar sebenarnya dengan mengubah urutan elemen di tempat , dan mungkin tidak diinginkan dalam banyak kasus.

4. Iterasi Mundur Menggunakan Apache's ReverseListIterator

The Apache Commons Koleksi perpustakaan memiliki bagus ReverseListIterator kelas yang memungkinkan kita untuk loop melalui unsur-unsur dalam daftar tanpa benar-benar membalikkan itu.

Sebelum kita mulai, kita perlu mengimpor dependensi terbaru dari Maven Central:

     org.apache.commons     commons-collections4     4.1 

Kita dapat membuat ReverseListIterator baru dengan meneruskan daftar asli sebagai parameter konstruktor:

ReverseListIterator reverseListIterator = new ReverseListIterator(list);

Kami kemudian dapat menggunakan iterator ini untuk melintasi daftar mundur:

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

5. Iterasi Mundur Menggunakan Guava's Lists.reverse ()

Demikian pula, perpustakaan Google Jambu juga menyediakan statis terbalik () metode dalam nya Lists kelas yang kembali pandangan kebalikan dari daftar yang tersedia.

Versi Guava terbaru dapat ditemukan di Maven Central:

     com.google.guava     guava     25.0 

Memanggil metode statis reverse () pada kelas Daftar memberi kita daftar dengan cara terbalik:

List reversedList = Lists.reverse(list);

Daftar terbalik kemudian dapat digunakan untuk mengulang kembali daftar asli:

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

Metode ini mengembalikan daftar baru dengan elemen daftar asli dalam urutan terbalik .

6. Kesimpulan

Dalam artikel ini, kami telah melihat berbagai cara untuk melakukan iterasi mundur melalui daftar di Java. Kami mempelajari beberapa contoh menggunakan Java inti, serta menggunakan pustaka pihak ketiga yang populer.

Kode sumber untuk artikel ini dan kasus pengujian yang relevan tersedia di GitHub.