Memodifikasi list dengan ListIterator

Input/Output dan Stream di Java

Alex Liu

Software Development Engineer

Iterator vs ListIterator

Perbandingan antara Iterator dan ListIterator

Input/Output dan Stream di Java

Contoh ArrayList

import java.util.ArrayList;
public class SampleData {
    public static void main(String[] args) {
        ArrayList<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");
    }
}  
[Alice, Bob, Charlie]
Input/Output dan Stream di Java

Menelusuri list dengan ListIterator

// Import kelas ListIterator
import java.util.ListIterator;

// Buat objek ListIterator untuk list `names` ListIterator<String> it = names.listIterator(); // Gunakan .hasNext() dan `.next()` untuk iterasi dan cetak per baris while (it.hasNext()) { System.out.println(it.next()); }
Alice 
Bob 
Charlie
Input/Output dan Stream di Java

Mundur dengan ListIterator

  • Gunakan .previous() untuk mundur dalam list
// Buat objek ListIterator untuk list `names`
ListIterator<String> it = names.listIterator(names.size());
// Gunakan .hasPrevious() untuk cek apakah iterator mencapai awal list
while (it.hasPrevious()) {
    // Gunakan .previous() untuk mengambil elemen secara terbalik
    System.out.println(it.previous());}
  • Cetak elemen secara terbalik, output:
Charlie
Bob
Alice
Input/Output dan Stream di Java

Memodifikasi elemen saat iterasi

  • Menggunakan metode .set()
// Buat objek ListIterator untuk list names
ListIterator<String> it = names.listIterator();

// Iterasi list dan ubah elemen dengan .set() while (it.hasNext()) { String name = it.next(); if ("Bob".equals(name)) it.set("Bobby"); }
  • List names setelah diperbarui:
[Alice, Bobby, Charlie]
Input/Output dan Stream di Java

Menambah elemen saat iterasi

  • Gunakan .add() untuk menambah elemen
ListIterator<String> it = names.listIterator();

// Iterasi list dan sisipkan elemen dengan .add() while (it.hasNext()) { String name = it.next(); if ("Charlie".equals(name)) it.add("David"); }
  • List names setelah diperbarui:
    [Alice, Bobby, Charlie, David]
    
Input/Output dan Stream di Java

Ringkasan

  • ListIterator memperluas Iterator
    • Mendukung traversing maju dan mundur
    • Memungkinkan modifikasi saat iterasi
  • Ringkasan metode kunci

    • .next()/.previous(): Navigasi maju/mundur
    • .set(): Ubah elemen saat ini
    • .add(): Sisipkan elemen dinamis
    • .remove(): Hapus dengan aman
    • Hanya untuk List (ArrayList, LinkedList, dll.)
Input/Output dan Stream di Java

Ayo berlatih!

Input/Output dan Stream di Java

Preparing Video For Download...