Sobes.tech
Middle

Java'da koleksiyonların hiyerarşisini açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da koleksiyonların hiyerarşisi, nesne gruplarını temsil etmenin standart bir yolunu sağlayan bir dizi arayüz üzerine kuruludur.

Ana arayüzler:

  • Collection: Hiyerarşinin temel arayüzü. Tüm koleksiyonlara uygulanabilen temel işlemleri tanımlar: ekleme, silme, öğe varlığını kontrol etme, boyutu belirleme.
  • Set: Yinelenen öğeleri içermeyen ve belirli bir sırası olmayan koleksiyon.
  • List: İndeksle erişilebilen sıralı koleksiyon. Yinelenen öğeleri içerebilir.
  • Queue: İşlem öncesinde öğeleri depolamak için tasarlanmış koleksiyon. Genellikle FIFO (İlk Giren İlk Çıkar) kuralını takip eder, ancak başka uygulamaları da vardır.
  • Deque: Çift uçlu kuyruk. Her iki uçtan da öğe ekleme ve çıkarma işlemlerini destekler.
  • Map: "anahtar-değer" çiftlerini saklayan koleksiyon. Anahtarlar benzersiz olmalıdır. Collection arayüzünü genişletmez.

Ana uygulama sınıfları (örnekler):

Arayüz Uygulayan sınıflar (örnekler) Açıklama
Set HashSet, LinkedHashSet, TreeSet Yinelenen olmayan. HashSet - sırasız, LinkedHashSet - ekleme sırasını korur, TreeSet - sıralı.
List ArrayList, LinkedList, Vector Sıralı. ArrayList - dizi tabanlı, LinkedList - bağlı liste tabanlı, Vector - senkronize (eski).
Queue LinkedList, PriorityQueue İşlem için. LinkedList - FIFO, PriorityQueue - önceliklere göre.
Deque ArrayDeque, LinkedList Çift uçlu kuyruk. ArrayDeque - dizi tabanlı, LinkedList - bağlı liste tabanlı.
Map HashMap, LinkedHashMap, TreeMap, Hashtable Anahtar-değer. HashMap - garantili sıralama yok, LinkedHashMap - ekleme/erişim sırasını korur, TreeMap - anahtarlara göre sıralı, Hashtable - senkronize (eski).

ArrayList kullanım örneği:

// Stringlerden oluşan ArrayList oluşturma
List<String> meyveler = new ArrayList<>();
// Öğeler ekleme
meyveler.add("Elma");
meyveler.add("Muz");
meyveler.add("Portakal");
// İndeksle erişim
String ilkMeyve = meyveler.get(0); // Elma
// Koleksiyonun boyutu
int boyut = meyveler.size(); // 3

HashSet kullanım örneği:

// Integer türünde HashSet oluşturma
Set<Integer> sayılar = new HashSet<>();
// Öğeler ekleme (yinelenenler yok sayılır)
sayılar.add(1);
sayılar.add(2);
sayılar.add(2); // Yok sayılır
// Koleksiyonun boyutu
int boyut = sayılar.size(); // 2

HashMap kullanım örneği:

// String anahtar ve Integer değer içeren HashMap oluşturma
Map<String, Integer> yaşlar = new HashMap<>();
// Anahtar-değer çiftleri ekleme
yaşlar.put("Alice", 30);
yaşlar.put("Bob", 25);
// Anahtar ile değeri alma
int AliceYaşı = yaşlar.get("Alice"); // 30
// Anahtarın var olup olmadığını kontrol etme
boolean varMi = yaşlar.containsKey("Bob"); // true