Özet - Iterator
- Java kursu
- Orta seviye
- Ders 99/116
- 5 dk
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
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
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 |