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.Collectioninterfeysini 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