Sobes.tech
Middle

Java-da kolleksiyaların hiyerarşisini təsvir edin.

sobes.tech Süni İntellekt

AI-dan cavab

Java-da kolleksiyaların hierarxiyası, obyekt qruplarını standart şəkildə təqdim edən interfeyslar toplusuna əsaslanır.

Əsas interfeyslar:

  • Collection: hierarxiyanın əsas interfeysi. Bütün kolleksiyalara tətbiq olunan əsas əməliyyatları müəyyən edir: əlavə etmə, silmə, elementlərin mövcudluğunu yoxlama, ölçünü təyin etmə.
  • Set: təkrarlanmayan və elementlərin müəyyən bir sırası olmayan kolleksiya.
  • List: indekslə elementlərə giriş imkanı olan sıralı kolleksiya. Təkrarlanan elementlər ola bilər.
  • Queue: emal üçün əvvəlcədən elementləri saxlamaq üçün nəzərdə tutulmuş kolleksiya. Adətən FIFO (İlk daxil, ilk çıxar) qaydasını izləyir, lakin digər tətbiqləri də mövcuddur.
  • Deque: iki tərəfli növbə. Hər iki ucdan elementlərin əlavə olunması və silinməsini dəstəkləyir.
  • Map: "açar-dəyər" cütlərini saxlayan kolleksiya. Açarlar unikal olmalıdır. Collection interfeysini genişləndirmir.

Əsas tətbiq edən sinflər (nümunələr):

Interfeys Tətbiq edən sinflər (nümunələr) Təsviri
Set HashSet, LinkedHashSet, TreeSet Dublikatlar olmadan. HashSet - sırasız, LinkedHashSet - əlavə olunma sırasını saxlayır, TreeSet - sıralanmış.
List ArrayList, LinkedList, Vector Sıralı. ArrayList - massiv əsaslı, LinkedList - bağlı siyahı əsaslı, Vector - sinxronlaşdırılmış (köhnə).
Queue LinkedList, PriorityQueue Emal üçün. LinkedList - FIFO, PriorityQueue - prioritetlərə əsaslanan.
Deque ArrayDeque, LinkedList İki tərəfli növbə. ArrayDeque - massiv əsaslı, LinkedList - bağlı siyahı əsaslı.
Map HashMap, LinkedHashMap, TreeMap, Hashtable Açar-dəyər. HashMap - garantili sıra yox, LinkedHashMap - əlavə olunma / giriş sırasını saxlayır, TreeMap - açarlara görə sıralanmış, Hashtable - sinxronlaşdırılmış (köhnə).

ArrayList istifadə nümunəsi:

// Stringlərdən ibarət ArrayList yaradılması
List<String> meyvələr = new ArrayList<>();
// Elementlərin əlavə olunması
meyvələr.add("Alma");
meyvələr.add("Banan");
meyvələr.add("Portakal");
// İndeks ilə giriş
String ilkMeyvə = meyvələr.get(0); // Alma
// Kolleksiyanın ölçüsü
int ölçü = meyvələr.size(); // 3

HashSet istifadə nümunəsi:

// Tam ədədlər üçün HashSet yaradılması
Set<Integer> ədədlər = new HashSet<>();
// Elementlərin əlavə olunması (təkrarlananlar nəzərə alınmır)
ədədlər.add(1);
ədədlər.add(2);
ədədlər.add(2); // Nəzərə alınmır
// Kolleksiyanın ölçüsü
int ölçü = ədədlər.size(); // 2

HashMap istifadə nümunəsi:

// String açar və Integer dəyər ilə HashMap yaradılması
Map<String, Integer> yaşlar = new HashMap<>();
// Açar-qiymət cütlərinin əlavə olunması
yaşlar.put("Alice", 30);
yaşlar.put("Bob", 25);
// Açar ilə dəyəri alma
int AliceYaşı = yaşlar.get("Alice"); // 30
// Açarın mövcudluğunu yoxlama
boolean varMi = yaşlar.containsKey("Bob"); // true