CodeBlanks Logo Icon CodeBlanks

Özet - Iterator

Iterator ve Iterable'ı birleştirerek bir özel koleksiyon yazarsın.

Özet - Iterator

Bu grupta koleksiyon dolaşmanın dört aracını gördün: Iterator temel tek yönlü dolaşma, ListIterator çift yönlü ve List'e özgü, Iterable for-each izni veren arayüz, Spliterator paralel dolaşmaya uygun.

iterator.remove() koşullu silmeyi güvenle yapar; for-each içinde silme yasaktır. Iterable uygulayan her sınıf for-each ile dolaşılabilir. Spliterator, Stream API'nin temel taşıdır ve trySplit ile paralel işleme izin verir.

Uygulama Karışık dolaşma alıştırması

Üç aracı birleştir. List<String> names = new ArrayList<>(); tanımla; "Ayşe", "Alexander", "Alex" ekle. Iterator<String> it = names.iterator(); ile dolaş; s.length() > 5 ise it.remove(); ile sil. Döngüden sonra for (String n : names) System.out.println(n); ile kalanları yazdır.

Başlangıç kodu

Main.java
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

public class Main {
    public static void main(String[] args) {
        // List<String> tanımla, 3 isim ekle, Iterator ile uzunları sil, for-each ile yazdır

    }
}

Örnek çözüm

Main.java
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

public class Main {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Ayşe");
        names.add("Alexander");
        names.add("Alex");
        Iterator<String> it = names.iterator();
        while (it.hasNext()) {
            String s = it.next();
            if (s.length() > 5) it.remove();
        }
        for (String n : names) {
            System.out.println(n);
        }
    }
}

Beklenen çıktı

Ayşe
Alex

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Dolaşma aracını eşleştir

Kavram Anlamı
Iterator Tek yönlü temel
ListIterator Çift yönlü, List'e özgü
Iterable for-each izni
Spliterator Paralel dolaşma

2 Hangi arayüz for-each döngüsüne izin verir?

  • Iterable Doğru cevap
  • Iterator
  • Comparator
  • Comparable

Açıklama: Iterable uygulayan sınıflar for-each ile dolaşılabilir.

3 Yöntem ve işlevini eşleştir

Kavram Anlamı
hasNext() Sonraki var mı
next() İlerlet ve ver
remove() Son okunanı sil
trySplit() İkiye böl

Orta seviye bölümündeki tüm dersler