Əsas Fərq – Siyahı və Dəst
Əksər proqramlaşdırma dilləri eyni tipli verilənlər toplusunu saxlamaq üçün massivlərdən istifadə edir. Massivlərin əsas çatışmazlığı ondan ibarətdir ki, massivin ölçüsü elan edildikdən sonra onu dəyişdirmək mümkün deyil. Əgər proqramçı massiv ölçüsündən artıq olan dəyərləri saxlamaq istəyirsə, o zaman yeni massiv yaratmalı və mövcud elementləri yeni massiləyə köçürməlidir. Bu vəziyyətdə kolleksiyalardan istifadə edilə bilər. Kolleksiyaların dəstəyi ilə elementlər əlavə etmək, elementləri silmək və bir çox başqa əməliyyatlar etmək mümkündür. Java kimi proqramlaşdırma dillərində müxtəlif növ kolleksiyalar mövcuddur. Siyahı və Set kolleksiyalar iyerarxiyasının interfeysləridir. Digər interfeyslər üçün əsas interfeys Kolleksiyadır. Siyahı ilə Set arasındakı əsas fərq ondan ibarətdir ki, Siyahı eyni elementi bir neçə dəfə saxlamağı dəstəkləyir, Set isə eyni elementi bir neçə dəfə saxlamağı dəstəkləmir. Buna görə də, Dəst təkrarlamaya icazə vermir.
Siyahı nədir?
Siyahı Kolleksiya interfeysini genişləndirən interfeysdir. Kolleksiya interfeysində bir sıra üsullar mövcuddur. Əlavə üsulu element əlavə etməyə kömək edir. 'Silin üsulu' elementi silməkdir. Birdən çox element əlavə etmək üçün 'addAll metodu', elementləri kolleksiyadan çıxarmaq üçün isə 'removeAll metodu' var. İçəri metodu müəyyən bir obyektin Siyahıda olub-olmadığını tapmağa kömək edir. 'containsAll' kolleksiyada bir sıra obyektlərin olub olmadığını tapmaq üçündür. İterator metodu siyahının maddələri arasında dövr etmək üçün istifadə olunur. Siyahı Kolleksiyanı genişləndirdiyi üçün Kolleksiyanın bütün üsulları Siyahıya aiddir. Bu üsullardan başqa Siyahıda get və set kimi üsullar var. Proqramçı get metodundan istifadə edərək müəyyən bir indeksdə dəyər əldə edə bilər. Proqramçı müəyyən edilmiş metoddan istifadə edərək müəyyən bir indeksdə qiymət təyin edə bilər. 'indexOf' elementin indeksini tapmaq üçün istifadə olunur.
Siyahıda əməliyyatlar mövqeyə görə yerinə yetirilə bilər. Proqramçı indeksə əlavə olunacaq məlumat elementini təqdim edə bilər. Beləliklə, xüsusi indeksə əlavə olunacaq. Proqramçı indeks vermirsə, element Siyahının sonuna əlavə olunacaq. O, həmçinin daxil edilmiş sıranı saxlayır. Element 1 əlavə edilərsə və sonra element2 əlavə olunarsa, element1 element2-dən əvvəl olacaq.
Şəkil 01: Siyahı və Set
ArrayList, LinkedList, Vector siyahısı həyata keçirən bəzi siniflərdir. ArrayList-də elementə daxil olmaq sürətlidir, lakin daxil etmək və silmək daha azdır. ArrayList mövzu üçün təhlükəsiz deyil. Eyni ArrayList-ə bir neçə mövzudan daxil olmaq eyni nəticəni verməyə bilər. LinkedList-də elementlər həm geriyə, həm də irəliyə bağlıdır. LinkedList-dən istifadə edərək elementlərin daxil edilməsi və silinməsi ArrayList-dən daha sürətlidir. LinkedList həm Siyahı, həm də növbəni həyata keçirir. Vektor ArrayList-ə bənzəyir, lakin bütün üsullar sinxronlaşdırıldığı üçün o, sürüşmək üçün təhlükəsizdir.
Quraşdırma nədir?
Set Kolleksiya interfeysini genişləndirən interfeysdir. Set interfeysi Kolleksiyanı genişləndirdiyi üçün Kolleksiyanın bütün üsulları da Set-ə aiddir. Dəst təkrarlanan dəyərləri dəstəkləmir. Buna görə proqramçı eyni elementi iki dəfə saxlaya bilməz. Unikal elementlər dəstini saxlayır. SortedSet interfeysi Set interfeysini genişləndirir. SortedSet elementləri sıralanmış qaydada saxlayır. NavigableSet interfeysi SortedSet-i genişləndirir. NavigableSet aşağı, mərtəbə, tavan və s. kimi naviqasiya üsullarını təmin edir.
HashSet, LinkedHashSet və TreeSet Set interfeysini həyata keçirən bəzi siniflərdir. HashSet Set interfeysini həyata keçirir. Daxil edilmiş sıranı saxlamır. Dəyərlər a, x, b kimi daxil edilərsə, o, x, a, b kimi saxlaya bilər. LinkedSet daxil edilmiş sifarişi saxlayır. Elementlər a, x, b sırasına daxil edilərsə, saxlama sırası a, x, b olacaqdır. TreeSet Set və NavigableSet-i həyata keçirir. O, daxil edilmə qaydasını saxlamır, lakin elementləri sıralanmış qaydada saxlayır. Daxil edilmiş sıra a, c, b olarsa, elementlər a, b, c kimi saxlanılacaq. Bütün HashSet, LinkedHashSet və TreeSet-də heç bir dublikat element olmayacaq.
Siyahı və Set arasındakı oxşarlıqlar nələrdir?
- Həm Siyahı, həm də Set interfeysləri Kolleksiya interfeysini genişləndirir.
- Elementlərin əlavə edilməsi, silinməsi kimi həm Siyahı, həm də Set dəstəyi əməliyyatları.
Siyahı ilə Set Arasındakı Fərq Nədir?
Siyahı vs Set |
|
Siyahı İnterfeysi İndeks əsasında daxil etmək, silmək kimi əməliyyatları yerinə yetirmək üçün metodlardan ibarət Kolleksiyanın alt interfeysidir. | Set İnterfeysi Kolleksiyanın alt interfeysidir və unikal elementləri qoruyarkən elementləri daxil etmək, silmək kimi əməliyyatları yerinə yetirmək üsullarını ehtiva edir. |
Dərslər | |
ArrayList, Vector və LinkedList Siyahı interfeysini həyata keçirən siniflərdir. | HashSet, LinkedHashSet və TreeSet Set interfeysini həyata keçirən siniflərdir. |
Element Dublikasiyası | |
Siyahı elementlərin təkrarlanmasını dəstəkləyir. | Set elementlərin təkrarlanmasını dəstəkləmir. Elementlər unikaldır. |
Xülasə – Siyahı və Dəst
Kolleksiyalar elementləri dinamik şəkildə saxlamaq üçün istifadə olunur. Java kimi proqramlaşdırma dilləri Kolleksiya interfeysini təmin edir. Siyahı və Set Kolleksiya interfeysinə aid iki interfeysdir. Hər iki interfeys Kolleksiyanı genişləndirir. Bu məqalə Siyahı və Set arasındakı fərqi müzakirə etdi. Siyahı ilə Set arasındakı əsas fərq ondan ibarətdir ki, Siyahı eyni elementi bir neçə dəfə saxlamağı dəstəkləyir, Set isə eyni elementi bir neçə dəfə saxlamağı dəstəkləmir. Set həmişə unikal elementləri saxlayır.