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.Collectionarayü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