Java · 7/8
Listeler: birden çok bilgiyi saklamak
Birden çok değeri sıralı koleksiyonda tutup ekleme, okuma ve sayma yapmak.
Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.
Bu sayfada · 9 başlık
Başlamadan önce
Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.
Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

Videoyla adım adım izle
Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.
Video bölümleri ve tam metin
Listeler: birden çok bilgiyi saklamak
Birden çok değeri sıralı koleksiyonda tutup ekleme, okuma ve sayma yapmak.
Kavramı kur
Birden fazla ismi isim1, isim2, isim3 gibi ayrı değişkenlerde tutmak yerine sıralı bir koleksiyonda gruplarız. Sıra, bir öğenin konumunu belirtir; değerinin kendisi değildir. İlk öğe çoğu temel yapıda 0 konumundan okunur. İkinci ve üçüncü öğeyi elle işaretleyerek bu sıfırdan başlayan indisi görünür hâle getir.
Neden böyle çalışıyor?
Koleksiyonun uzunluğu ile son geçerli indis farklıdır. Üç öğe varsa uzunluk 3, son indis 2 olur. Bir öğeyi ekledikten veya sildikten sonra bu değerler değişebilir. Sabit bir son indis varsaymak yerine uzunluğu ve dolaşma yöntemini kullanmayı öğren.
Çalışma sırası
Veri yapısına hangi işi yaptığını açıkça ayır: sona eklemek, var olan öğeyi değiştirmek ve yeni bir koleksiyon üretmek aynı işlem değildir. Çıktıyı kontrol ederken hem içerik hem sıra hem de öğe sayısını incele. Küçük örnekte bunları doğru kurmak daha sonra dosya ve API verilerini işlemenin temelidir.
İkinci örnek · 1
Başlangıç koleksiyonu iki isim içerir. Kodun tamamı yazılı derste bulunur.
Kod
public class Main {
public static void main(String[] args) {
java.util.List<String> isimler = new java.util.ArrayList<>();
isimler.add("Elif");
isimler.add("Mert");
isimler.add("Deniz");
System.out.println(isimler.get(0));
System.out.println(isimler.get(2));
System.out.println(isimler.size());
}
}Beklenen sonucu oku
Öğe sayısı 3 olur; son geçerli indis 2 olarak kalır.
Beklenen çıktı: Elif Deniz 3
Bir değeri sen değiştir
Başlangıçtaki isimleri değiştir; sıra ve indisleri kâğıda yaz. Bir isim daha ekle; sayının 4 olduğunu doğrula.
Hata nereden gelir?
Uzunluğu son indis gibi kullanmak sınır dışına erişir; üç öğede son konum 2’dir.
Kendi çözümünü kur
Koleksiyonu döngüyle dolaşıp bütün isimleri yazdır; elle indis tekrarlamak yerine uygun dolaşma yapısını seç. Koleksiyonun her değişiminden sonra içerik listesini ve uzunluğu ayrı ayrı not et.
Çözüm varyasyonu · 1
Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.
Kod
public class Main {
public static void main(String[] args) {
java.util.List<String> isimler = new java.util.ArrayList<>();
isimler.add("Elif");
isimler.add("Mert");
isimler.add("Ece");
System.out.println(isimler.get(0));
System.out.println(isimler.get(2));
System.out.println(isimler.size());
}
}Kendini kontrol et
Üç öğeli sıfır tabanlı bir koleksiyonda son geçerli indis nedir? Yanıt: 2; uzunluk 3 olması 3 indisinin var olduğu anlamına gelmez.
Beklenen çıktı: Elif Ece 3
Konu anlatımı
Birden fazla ismi isim1, isim2, isim3 gibi ayrı değişkenlerde tutmak yerine sıralı bir koleksiyonda gruplarız. Sıra, bir öğenin konumunu belirtir; değerinin kendisi değildir. İlk öğe çoğu temel yapıda 0 konumundan okunur. İkinci ve üçüncü öğeyi elle işaretleyerek bu sıfırdan başlayan indisi görünür hâle getir.
Koleksiyonun uzunluğu ile son geçerli indis farklıdır. Üç öğe varsa uzunluk 3, son indis 2 olur. Bir öğeyi ekledikten veya sildikten sonra bu değerler değişebilir. Sabit bir son indis varsaymak yerine uzunluğu ve dolaşma yöntemini kullanmayı öğren.
Veri yapısına hangi işi yaptığını açıkça ayır: sona eklemek, var olan öğeyi değiştirmek ve yeni bir koleksiyon üretmek aynı işlem değildir. Çıktıyı kontrol ederken hem içerik hem sıra hem de öğe sayısını incele. Küçük örnekte bunları doğru kurmak daha sonra dosya ve API verilerini işlemenin temelidir.
List<String> arayüz, ArrayList ise bu örnekte kullanılan somut uygulamadır. get ile konumdan okur, add ile öğe ekler, size ile sayısını alırsın. Array ile List sözdizimini karıştırma; listedeki ilk öğe get(0) ile okunur.
İlk örneği oku ve dene
Listeler: birden çok bilgiyi saklamak
ArrayList, birden fazla değeri sırayla tutar ve büyüyebilir. add eleman ekler, get(0) ilk elemanı verir, size eleman sayısını verir. (Normalde dosyanın en üstüne import java.util.ArrayList; yazılır; burada kısa olsun diye tam adını kullandık.)
java.util.ArrayList<String> alisveris = new java.util.ArrayList<>();
alisveris.add("ekmek");
alisveris.add("süt");
alisveris.add("yumurta");
System.out.println(alisveris.get(0));
System.out.println(alisveris.size() + " ürün var");
▶ Sonuç
ekmek 3 ürün var
Adım adım neden böyle çalışıyor?
- Başlangıç koleksiyonu iki isim içerir.
- Sona ekleme üçüncü öğeyi oluşturur.
- 0 konumu Elif; 2 konumu Deniz değerini gösterir.
- Öğe sayısı 3 olur; son geçerli indis 2 olarak kalır.
İkinci çözümlü örnek
Birden çok değeri sıralı koleksiyonda tutup ekleme, okuma ve sayma yapmak.
public class Main {
public static void main(String[] args) {
java.util.List<String> isimler = new java.util.ArrayList<>();
isimler.add("Elif");
isimler.add("Mert");
isimler.add("Deniz");
System.out.println(isimler.get(0));
System.out.println(isimler.get(2));
System.out.println(isimler.size());
}
}
▶ Sonuç
Elif Deniz 3
Kolaydan zora sen dene
- Başlangıçtaki isimleri değiştir; sıra ve indisleri kâğıda yaz.
- Bir isim daha ekle; sayının 4 olduğunu doğrula.
- Koleksiyonu döngüyle dolaşıp bütün isimleri yazdır; elle indis tekrarlamak yerine uygun dolaşma yapısını seç.
İpucunu aç
Koleksiyonun her değişiminden sonra içerik listesini ve uzunluğu ayrı ayrı not et.
Üç görevin açıklamalı çözümünü oku
- Yeni isimler aynı sırayla 0,1,2 konumlarında tutulur; değer değişmesi indislerin temel kuralını değiştirmez.
- Bir öğe daha eklenince uzunluk 4, son geçerli indis 3 olur. Eski indisleri körlemesine kopyalamadan koleksiyon durumunu tekrar çiz.
- Koleksiyonu doğrudan öğe öğe dolaş; her turda o ismi yazdır. Beklenen çıktı, eklediğin isimlerin koleksiyondaki sırasıdır.
Bir çözüm varyasyonu gör
Çözüm varyasyonu
Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.
public class Main {
public static void main(String[] args) {
java.util.List<String> isimler = new java.util.ArrayList<>();
isimler.add("Elif");
isimler.add("Mert");
isimler.add("Ece");
System.out.println(isimler.get(0));
System.out.println(isimler.get(2));
System.out.println(isimler.size());
}
}
▶ Sonuç
Elif Ece 3
Yaygın hata ve çözümü
- Uzunluğu son indis gibi kullanmak sınır dışına erişir; üç öğede son konum 2’dir.
- Ekleme işleminin dönüşünü yeni koleksiyon sanma; kullanılan metodun sözleşmesini kontrol et.
Kendini değerlendir
Ezberlemeden açıklayabiliyor musun?
Üç öğeli sıfır tabanlı bir koleksiyonda son geçerli indis nedir?
Açıklamalı yanıt
2; uzunluk 3 olması 3 indisinin var olduğu anlamına gelmez.
Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.
Kaynak ve çalışma ortamı
Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.
Resmî dil belgeleriBu içerik işine yaradı mı?
Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.