Pengenalan Iterator

Input/Output dan Stream di Java

Alex Liu

Software Development Engineer

Bekerja dengan koleksi

  • Contoh HashSet untuk sisa video
import java.util.HashSet;

public class SampleHashSetData { public static void main(String[] args) { HashSet<String> fruits = new HashSet<>();
fruits.add("Apple"); fruits.add("Banana");
} }
{Apple, Banana}
Input/Output dan Stream di Java

Gunakan For-Each loop

  • For-Each loop
    • Format: for (type x: collection){}
    • Memproses tiap elemen otomatis
    • Berfungsi untuk banyak koleksi: List, Set, Map, dll.
  • Contoh: gunakan set sampel fruits: [Apple, Banana].
for (String x : fruits) {
    System.out.println(x);
}
Apple
Banana
Input/Output dan Stream di Java

Menelusuri koleksi dengan Iterator

  • Gunakan Iterator<>: mendukung List, Set, Queue, dll.
  • Impor kelas Iterator
import java.util.Iterator;

// Buat objek `Iterator` bernama `it` untuk set sampel `fruits` Iterator<String> it = fruits.iterator(); // Metode `.hasNext()` mengecek apakah ada elemen berikutnya while (it.hasNext()) { // `.next()` mengambil elemennya System.out.print(it.next());}
Apple Banana
Input/Output dan Stream di Java

Menghapus elemen dengan Iterator

  • Gunakan .remove() untuk menghapus elemen dengan Iterator

$$

Iterator<String> it = fruits.iterator();
while (it.hasNext()) {
    String fruit = it.next();
    if (fruit.startsWith("A")) {
        // Hapus elemen jika diawali `A`
        it.remove();
        }
}
// fruits sekarang hanya berisi "Banana"
Input/Output dan Stream di Java

Menghapus elemen dengan Iterator (lanj.)

  • Sebelum hapus:

    System.out.println(fruits);
    
    [Apple, Banana]
    
  • Setelah hapus:

    System.out.println(fruits);
    
    [Banana]
    
  • Menjamin penghapusan aman dan mencegah ConcurrentModificationException

Ikon yang mewakili penghapusan aman

Input/Output dan Stream di Java

Ringkasan

  • For-Each loop
    • Dukungan
      • List(ArrayList,LinkedList)
      • Set(HashSet,TreeSet,LinkedHashSet)
      • Queue(PriorityQueue)
      • Stack(Stack)
    • Tidak mendukung
      • Map
      • Penghapusan elemen
  • Iterator
    • Dukungan
      • List(ArrayList,LinkedList)
      • Set(HashSet,TreeSet,LinkedHashSet)
      • Queue(PriorityQueue)
      • Stack(Stack)
      • Map (Harus gunakan keySet().iterator, values().iterator atau entrySet().iterator)
      • Penghapusan elemen
Input/Output dan Stream di Java

Ayo berlatih!

Input/Output dan Stream di Java

Preparing Video For Download...