Sobes.tech
Junior

Java'da hangi koleksiyonlar var?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da, Java Collections Framework'e dahil olan aşağıdaki temel koleksiyon arayüzleri bulunmaktadır:

  • Collection: Nesne grupları üzerinde ortak işlemleri tanımlayan temel arayüzdür. Alt arayüzlere miras verir:

    • List: Sıralı koleksiyon (dizi). Öğeler tekrar edebilir. İndeks erişimini destekler.
      • ArrayList: Dinamik dizi. Hızlı indeks erişimi ve sona ekleme için iyidir. Ortada ekleme/silme yavaş.
      • LinkedList: Çift bağlı liste. Başlangıca veya sona ekleme/silme için iyidir. İndeks erişimi yavaş.
      • Vector: ArrayList'in senkronize edilmiş versiyonu. Eskimiş kabul edilir.
      • Stack: Vector'den miras alır, yığın (LIFO) davranışını uygular.
    • Set: Sadece benzersiz öğeleri içeren koleksiyon. Sıralamayı garanti etmez.
      • HashSet: Hash tablosu kullanılarak uygulanır. Ekleme, silme ve varlık kontrolü en hızlıdır. Sıralamayı garanti etmez.
      • LinkedHashSet: Hash tablosu + bağlı liste olarak uygulanır. Ekleme sırasını garanti eder.
      • TreeSet: Kırmızı-siyah ağaç kullanılarak uygulanır. Öğeleri sıralı sırayla tutar. HashSet'ten yavaş, ancak aralık arama için LinkedHashSet'ten daha hızlıdır.
    • Queue: İşlenmeden önce öğeleri depolamak için tasarlanmış koleksiyon (FIFO - First-In, First-Out).
      • PriorityQueue: Öğeler doğal sıralarına veya karşılaştırıcıya göre saklanır. En yüksek öncelikli öğe çıkarılır.
      • Deque: (Double Ended Queue) Her iki uçtan ekleme ve çıkarma destekler.
        • ArrayDeque: Dizi tabanlı Deque uygulaması. Queue/yığın olarak LinkedList'den daha verimlidir.
  • Map: Anahtar-değer çiftlerini tutan koleksiyon. Anahtarlar benzersizdir.

    • HashMap: Hash tablosu kullanılarak uygulanır. Ekleme, silme ve varlık kontrolü en hızlıdır. Anahtar sırasını garanti etmez.
    • LinkedHashMap: Hash tablosu + bağlı liste olarak uygulanır. Ekleme veya erişim sırasını garanti eder.
    • TreeMap: Kırmızı-siyah ağaç kullanılarak uygulanır. Anahtar sırasına göre sıralanmış anahtar-değer çiftlerini tutar. HashMap'ten daha yavaş, ancak arama aralıkları için LinkedHashMap'ten daha hızlıdır.
    • HashTable: HashMap'in senkronize edilmiş versiyonu. Eskimiş kabul edilir.

Ayrıca, JCF'ye ait olmayan ancak bazen karşılaşılan eski sınıflar da vardır:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (arayüz)