import java.util.*;

public class ListIteratorDuaArah {
    public static void main(String[] args) {
        List<String> nama = new ArrayList<>(List.of("Budi", "Siti", "Dewi"));
        ListIterator<String> it = nama.listIterator();

        System.out.println("Maju:");
        while (it.hasNext()) {
            int pos = it.nextIndex();
            String s = it.next();
            System.out.println("  " + pos + ": " + s);
        }

        System.out.println("Mundur:");
        while (it.hasPrevious()) {
            int pos = it.previousIndex();
            String s = it.previous();
            System.out.println("  " + pos + ": " + s);
        }

        // set mengganti elemen terakhir yang disentuh; add menyisip di posisi kursor.
        it.next();          // menyentuh Budi
        it.set("Budi S."); // mengganti Budi
        it.add("Anton");    // menyisip Anton setelah kursor
        System.out.println("Hasil akhir: " + nama);
    }
}
