crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
Java Collection Framework: Veri Yapılarının Haritası
1. List Arayüzü: Düzenli ve Tekrarlı
List, verilerin giriş sırasına göre tutulduğu bir yapıdır. Bir listede aynı elemandan birden fazla bulunabilir (duplicate allowed) ve elemanlara indeks numarasıyla (0, 1, 2...) erişilebilir.
ArrayList: Dinamik bir dizidir. Veriye erişim (get) çok hızlıdır ancak aradan eleman silmek veya eklemek yavaştır.
LinkedList: Elemanlar birbirine düğümlerle bağlıdır. Araya eleman ekleyip çıkarmak çok hızlıdır ancak belirli bir indeksteki veriye ulaşmak daha yavaştır.
Java:
List<String> alisverisListesi = new ArrayList<>();
alisverisListesi.add("Süt");
alisverisListesi.add("Ekmek");
alisverisListesi.add("Süt"); // Tekrar eden eleman eklenebilir
System.out.println(alisverisListesi.get(1)); // Çıktı: Ekmek
2. Set Arayüzü: Benzersiz Elemanlar
Set, matematikteki kümeler gibidir. İçerisinde asla tekrar eden eleman barındırmaz. Eğer bir listeye aynı elemanı ikinci kez eklemeye çalışırsanız, Set bunu görmezden gelir.
HashSet: Elemanları karışık (hash tabanlı) tutar. En hızlı Set yapısıdır.
LinkedHashSet: Elemanları ekleme sırasına göre tutar.
TreeSet: Elemanları doğal sıralamasına göre (A-Z veya 1-9) otomatik olarak dizer.
Java:
Set<Integer> numaralar = new HashSet<>();
numaralar.add(10);
numaralar.add(20);
numaralar.add(10); // Bu ekleme başarısız olur, küme değişmez.
System.out.println(numaralar.size()); // Çıktı: 2
3. Map Arayüzü: Anahtar-Değer (Key-Value) Çifti
Map, teknik olarak Collection arayüzünden türemez ama framework'ün bir parçasıdır. Verileri bir Anahtar (Key) ve ona karşılık gelen Değer (Value) şeklinde tutar. Anahtarlar benzersiz (unique) olmalıdır.
HashMap: Anahtar-değer çiftlerini karışık sırada tutar. Çok hızlıdır.
TreeMap: Anahtarları alfabetik veya sayısal olarak sıralı tutar.
LinkedHashMap: Anahtarları ekleme sırasına göre tutar.
Java:
Map<String, String> sozluk = new HashMap<>();
sozluk.put("Java", "Programlama Dili");
sozluk.put("Apple", "Meyve veya Teknoloji Devi");
System.out.println(sozluk.get("Java")); // Çıktı: Programlama Dili
4. Hangi Yapıyı Seçmeliyim?
| Senaryo | Önerilen Yapı | Neden? |
|---|---|---|
| Sıralı bir liste lazım, elemanlar tekrar edebilir. | ArrayList | Hızlı erişim ve kolay yönetim. |
| Bir listede her eleman sadece 1 kere olmalı. | HashSet | Benzersizlik garantisi ve hız. |
| Kullanıcı ID'sine göre kullanıcı nesnesini bulmalıyım. | HashMap | Anahtar üzerinden direkt erişim. |
| Veriler her zaman alfabetik sırada durmalı. | TreeSet / TreeMap | Otomatik sıralama özelliği. |
Sonuç
Java Collection Framework, veriyi sadece saklamakla kalmaz, ona en verimli şekilde ulaşmanızı sağlar. Büyük veri setleriyle çalışırken yanlış koleksiyon seçimi (örneğin binlerce verilik bir listede sürekli arama yapmak için ArrayList kullanmak), uygulamanızın performansını ciddi şekilde düşürebilir.