Əsas Fərq – TreeSet vs HashSet
Əksər proqramlaşdırma dilləri Massivləri dəstəkləyir. Bu, eyni tipli bir çox elementi saxlamaq üçün istifadə edilən məlumat strukturudur. Altı element üçün elan edilmiş massiv varsa, on elementi saxlamaq üçün istifadə edilə bilməz. Buna görə də massivlər dinamik deyil və elan edildikdən sonra massivin ölçüsünü dəyişə bilməz. Java kimi proqramlaşdırma dilləri məlumatların dinamik şəkildə saxlanması üçün istifadə edilən Kolleksiyaları dəstəkləyir. Kolleksiyalar elementlərin əlavə edilməsi və elementlərin silinməsi kimi əməliyyatları dəstəkləyir. Kolleksiya iyerarxiyasında bir sıra interfeyslər və siniflər var. Əsas interfeys Kolleksiya interfeysidir. Set Kolleksiya interfeysini genişləndirən interfeysdir. Təkrarlanmasına imkan vermir. TreeSet və HashSet Kolleksiya iyerarxiyasında iki sinifdir və hər ikisi Set interfeysini həyata keçirir. TreeSet Set interfeysini həyata keçirən sinifdir və unikal elementləri artan qaydada saxlamaq üçün istifadə olunur. HashSet Set interfeysini həyata keçirən sinifdir və Hashing mexanizmindən istifadə edərək unikal elementləri saxlamaq üçün istifadə olunur. TreeSet və HashSet arasındakı əsas fərq odur ki, TreeSet elementləri artan qaydada saxlayır, HashSet isə elementləri artan qaydada saxlamır. Həm TreeSet, həm də HashSet yalnız unikal elementləri saxlayır.
TreeSet nədir?
TreeSet sinfi NavigableSet interfeysini həyata keçirir. NavigableSet interfeysi SortedSet, Set, Collection və Iterable interfeyslərini iyerarxik qaydada genişləndirir. TreeSet həmişə artan sıranı qoruyur. Elementlər B, A, C sırası ilə daxil edilibsə, onlar A, B, C kimi saxlanılacaq. Add (), remove () kimi üsullar TreeSet obyekti ilə istifadə oluna bilər. Əlavə üsulu element əlavə etmək üçün istifadə edilə bilər. Sil üsulu elementi kolleksiyadan silmək üçün istifadə olunur. Bunlar TreeSet ilə istifadə edilə bilən bəzi üsullardır.
Şəkil 01: TreeSet ilə proqram
Yuxarıda göstərilən proqrama uyğun olaraq TreeSet tipli obyekt yaradılır. Simli məlumat elementləri əlavə metodundan istifadə edərək həmin obyektə əlavə edilir. Daxil edilmiş məlumat sırası A, D, A, B, C, D. İteratordan istifadə edərək, saxlanılan dəyərlər ekrana çap olunur. Çıxış A, B, C, D-dir. Baxmayaraq ki, iki A hərfi və iki D hərfi olsa da, çıxışda hər biri bir A və bir D göstərilir. Beləliklə, TreeSet unikal elementləri saxlayır. Xüsusi daxiletmə sırası yoxdur, lakin çıxışı müşahidə edərkən TreeSet-in elementlərin artan sırasını qoruduğunu görmək olar.
HashSet nədir?
HashSet sinfi Set İnterfeysini həyata keçirən AbstractSet sinfini genişləndirir. Set interfeysi iyerarxik qaydada Kolleksiya və İterable interfeyslərini miras alır. HashSet-də elementlərin artan sıranı və daxil edilmiş sıranı qoruyacağına zəmanət yoxdur. Daxil edilmiş sıra A, B, C idisə, dəyərlər C, A, B kimi saxlanıla bilər. Saxlama sırası da A, B, C ola bilər, lakin daxil edilmiş sıranın və ya artan sıranın saxlanılmasına zəmanət yoxdur.
Şəkil 02: HashSet ilə proqram
Yuxarıdakı proqrama uyğun olaraq HashSet tipli obyekt yaradılır. Simli məlumat elementləri əlavə metodundan istifadə edərək həmin obyektə əlavə edilir. Daxil edilmiş verilənlər sırası L, R, M, M, R, L-dir. İteratordan istifadə edərək, saxlanılan dəyərlər ekrana çap olunur. Çıxış R L M-dir. Hər birindən iki L, R və M hərfi olsa da, hər birindən yalnız bir hərf göstərilir. Buna görə də, HashSet unikal elementləri saxlayır. Çıxışı müşahidə edərkən, artan sıranın olmadığını və ya daxil edilmiş sıranın qorunduğunu görmək olar.
TreeSet və HashSet arasında hansı oxşarlıqlar var?
- Həm TreeSet, həm də HashSet kolleksiya iyerarxiyasına aid siniflərdir.
- Həm TreeSet, həm də HashSet yalnız unikal elementləri saxlayır.
- Həm TreeSet, həm də HashSet bir çox elementləri saxlamaq və manipulyasiya etmək üçün istifadə edilə bilər.
- Həm TreeSet, həm də HashSet daxil edilmiş sıranı saxlamır.
TreeSet və HashSet arasındakı fərq nədir?
TreeSet vs HashSet |
|
TreeSet kolleksiya iyerarxiyasında unikal elementləri artan qaydada saxlamaq üçün istifadə edilən sinifdir. | HashSet kolleksiya iyerarxiyasında Hashing mexanizmindən istifadə edərək unikal elementləri saxlamaq üçün istifadə edilən sinifdir. |
Element Saxlanması | |
TreeSet elementləri artan qaydada saxlayır. | HashSet elementləri artan qaydada saxlamır. |
Xülasə – TreeSet vs HashSet
Proqramlaşdırmada məlumat elementlərini dinamik şəkildə saxlamaq tələb olunur. Java kimi proqramlaşdırma dilləri bu tapşırığı yerinə yetirmək üçün Collections dəstəkləyir. Kolleksiya iyerarxiyasında bir sıra interfeyslər və siniflər var. TreeSet və HashSet Kolleksiya iyerarxiyasında iki sinifdir. Hər ikisi Set interfeysini həyata keçirir. TreeSet Set interfeysini həyata keçirən sinifdir və unikal elementləri artan qaydada saxlamaq üçün istifadə olunur. HashSet Set interfeysini həyata keçirən sinifdir və Hashing mexanizmindən istifadə edərək unikal elementləri saxlamaq üçün istifadə olunur. TreeSet və HashSet arasındakı fərq ondan ibarətdir ki, TreeSet elementləri artan qaydada saxlayır, HashSet isə elementləri artan qaydada saxlamır. Bu məqalədə TreeSet və HashSet arasındakı fərq müzakirə olunub.