Java Collections Framework, farklı veri yapıları üzerinde veri işlemek için güçlü araçlar sunar. Koleksiyonlardaki elemanlara erişmek, üzerinde gezinmek ve işlem yapmak için en yaygın kullanılan yöntemler Iterator ve döngülerdir.
Bu yazıda Java’da Iterator nedir, nasıl kullanılır, farklı döngülerle koleksiyonlar nasıl işlenir detaylı şekilde anlatacağız.
🔍 Iterator Nedir?
Iterator
, Java koleksiyonlarındaki elemanlar üzerinde sırasıyla dolaşmayı sağlayan bir arayüzdür. Koleksiyonların iç yapısına bağlı kalmadan güvenli ve kolay gezinme sağlar.
Iterator’nin Temel Metodları
hasNext()
: Sonraki eleman var mı diye kontrol eder, boolean döner.next()
: Bir sonraki elemanı döner.remove()
: İteratörün gösterdiği elemanı koleksiyondan siler.
🧑💻 Iterator Kullanımı Örneği
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorOrnek {
public static void main(String[] args) {
ArrayList<String> renkler = new ArrayList<>();
renkler.add("Kırmızı");
renkler.add("Mavi");
renkler.add("Yeşil");
Iterator<String> iterator = renkler.iterator();
while (iterator.hasNext()) {
String renk = iterator.next();
System.out.println(renk);
if (renk.equals("Mavi")) {
iterator.remove(); // Güvenli silme
}
}
System.out.println("Güncel Liste: " + renkler);
}
}
🔄 Döngülerle Koleksiyon İşlemleri
Java’da koleksiyonlar üzerinde işlem yaparken en çok kullanılan döngü tipleri:
1. For Döngüsü (İndeks Bazlı)
ArrayList
gibi indeks destekleyen koleksiyonlarda kullanılır.
for (int i = 0; i < liste.size(); i++) {
System.out.println(liste.get(i));
}
2. For-Each Döngüsü (Gelişmiş For Döngüsü)
Java 5 ile gelen kolay ve okunabilir yöntemdir. Tüm koleksiyonlarda kullanılabilir.
for (String eleman : liste) {
System.out.println(eleman);
}
3. Iterator Döngüsü
Java 5 ile gelen kolay ve okunabilir yöntemdir. Tüm koleksiyonlarda kullanılabilir.
for (String eleman : liste) {
System.out.println(eleman);
}
Elemanları güvenli şekilde silmek veya değiştirmek için idealdir.
⚠️ Neden Iterator Kullanmalıyız?
Koleksiyonları döngü ile gezerken aynı anda eleman silmek ConcurrentModificationException
hatasına neden olabilir. Iterator.remove()
metodu ise bunu engeller ve güvenli silme sağlar.