Sobes.tech
Middle

Java'da Collection çerçevesinin yapısı hakkında bana bilgi ver.

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'daki Collections çerçevesi, nesne koleksiyonlarını temsil etmek ve üzerinde işlem yapmak için birleşik bir mimari sağlar. Ana bileşenleri:

  1. Arayüzler: Koleksiyonların soyut türlerini tanımlar.

    • Collection: nesne grubunu temsil eden temel arayüz.
    • List: sıralı, yinelenen öğelere izin veren koleksiyon.
    • Set: yinelenen öğe içermeyen koleksiyon.
    • SortedSet: sıralanmış öğeleri olan Set.
    • NavigableSet: sıralanmış kümede gezinme metodları sağlayan SortedSet.
    • Queue: belirli bir sırayla işlenen öğeler içeren koleksiyon (genellikle FIFO veya LIFO).
    • Deque: çift uçlu kuyruk.
    • Map: anahtar-değer çiftleri koleksiyonu. Collection'dan kalıtım almaz.
    • SortedMap: sıralanmış anahtarlar içeren Map.
    • NavigableMap: sıralanmış haritada gezinme metodları sağlayan SortedMap.
    • Iterator: koleksiyon öğeleri üzerinde yineleme yapmayı sağlar.
    • ListIterator: Iterator'ı genişleterek liste üzerinde iki yönlü gezinme ve listeyi değiştirme imkanı sağlar.
  2. Uygulama sınıfları: Arayüzlerin somut uygulamalarını sağlar.

    • List için: ArrayList, LinkedList, Vector (Kalıtım).
    • Set için: HashSet, LinkedHashSet, TreeSet.
    • Queue için: LinkedList, PriorityQueue.
    • Deque için: ArrayDeque, LinkedList.
    • Map için: HashMap, LinkedHashMap, TreeMap, Hashtable (Kalıtım).
  3. Algoritmalar: Collections sınıfında bulunan ve koleksiyonlar üzerinde genel işlemler yapan statik metodlar; sıralama, arama, karıştırma ve diğerleri.

  4. Yardımcı sınıflar: Dizilerle çalışmak için Arrays sınıfı ve nesnelerle genel işlemler için Objects sınıfı.

Kullanım örneği:

// ArrayList oluşturma
List<String> isimler = new ArrayList<>();
isimler.add("Alice");
isimler.add("Bob");
isimler.add("Charlie");

// Liste üzerinde yineleme
for (String isim : isimler) {
    System.out.println(isim);
}

// Listeyi sıralama
Collections.sort(isimler);
System.out.println("Sıralı isimler: " + isimler);

// HashSet oluşturma
Set<Integer> sayılar = new HashSet<>();
sayılar.add(1);
sayılar.add(2);
sayılar.add(1); // yinelenen göz ardı edilir
System.out.println("Sayılar kümesi: " + sayılar);

// HashMap oluşturma
Map<String, Integer> yaşlar = new HashMap<>();
yaşlar.put("Alice", 30);
yaşlar.put("Bob", 25);
System.out.println("Yaşlar: " + yaşlar);

Arayüzler arasındaki temel ilişkiler:

Collection <--- List, Set, Queue, Deque
List <--- ArrayList, LinkedList, Vector
Set <--- HashSet, LinkedHashSet, TreeSet
SortedSet <--- TreeSet
NavigableSet <--- TreeSet
Queue <--- LinkedList, PriorityQueue
Deque <--- ArrayDeque, LinkedList

Map <--- HashMap, LinkedHashMap, TreeMap, Hashtable
SortedMap <--- TreeMap
NavigableMap <--- TreeMap

Bu yapı, esneklik sağlar ve belirli bir görev için en uygun uygulamayı seçme imkanı sunar.