Collections ( Data Structures in Java )

Lachin Guluyev
4 min readSep 2, 2022

--

Salam ,

Collection Framework nədir ?

Collection Framework-u Data strukturların həyata keçirilməsini təşkil edir. Bəs Data Strukturlar nədir? : Yaddaşda məlumatların ( Dataların) saxlanması və məlumatlar üzərində əməliyyatların icra edilməsi üçün vasitədir.

Collection özü interface olub İterable interface-indən extends edir.

İnterface-lərdə biri digərini extends edir.

Collection 3 yerə ayrılır — List , Queue və Set.

Map bura aid deyil ancaq o barədədə danışacağıq. Map interface-i Collection-dan extend etmir çünki dataları key-value şəklində özündə saxlayır və bu Map-i digərlərindən fərqləndirir. İşləmə prinsipi eyni olduğundan bu mövzuya daxil edilmişdir.

List :

ArrayList , LinkedList , Vector , Stack klassları implements edir List interface-in.

List özündə təkrar element saxlaya bilir , elementləri girdiyimiz ardıcıllıqla əlavə edir və istədiyimiz indeksə element elavə edə bilərik , silə bilərik və dəyişə bilərik.

1. List <data-type> list1= new ArrayList();
2. List <data-type> list2 = new LinkedList();
3. List <data-type> list3 = new Vector();
4. List <data-type> list4 = new Stack();

ArrayList :

Listin xususiyyətlərini özündə saxlayır. Arraylist ilə Arrayin fərqi ən çox soruşulan suallar arasındadır. ArrayList özündə array şəklində saxlayır ancaq əsas fərq — Array yaratdığımızda onun ölçüsün əvvəlcədən təyin etməliyik , ArrayList isə genişlənə bilir.

LinkedList :

Eyni ArrayList kimidir. Listin xususiyyətlərin özündə daşıyır. LinkedListin işləmə mexanizması Arraylistdən fərqlidir. Belə ki Data əlavə etdiyimizdə və sildiyimizdə LinkedList surətli işləyir ( O(1)-dir). ArrayList axtarış etdiyimiz zaman surətli işləyir. O(1)-dir. LinkedList isə O(n).

Queue :

Queue interface-i FİFO prinsipi ilə işləyir — First in First out. Məsələn marketdə kassaya ilk siz yaxınlaşdınız ilk sizin işiniz bitəcək və ilk siz çıxacaqsız oradan. Stack isə Queue-dən fərqlidir FİLO prinsipi ilə işləyir First in Last Out. Məsələn masada üst-üstə qoyulan kitablar düşünün ən 1ci qoyduğunuz altdakı kitabı ən son götürəcəksiniz ən son qoyduğunuz kitabı isə ən birinci götürəcəksiniz.

Set :

HashSet , LinkedHashSet , TreeSet klassları implements edir Set interface-in.

Set interface-i özündə təkrar element saxlamır bir elementdən yalnızca bir ədəd saxlayır.

HashSet :

HashSet elementləri hash-ə görə yaddaşda saxlayır və çap etdiyimizdə sırasız şəkildə çap edir. Hashset təkrar element qəbul etmir.

LinkedHashSet:

HashSet-dən fərqli olaraq elementləri sıralı şəkildə yəni ki, hansı ardıcıllıqla əlavə etmişiksə o şəkildədə özündə saxlayır.

TreeSet:

Elementləri özü artan sıra ilə sort edərək çap edir. Null dəyər qəbul etmir digər Set-lərdən əsas fərqi.

Əgər Null dəyər göndərsək bizə “ NullPointerException“ xətası atacaq.

Map ( K/V) :

HashMap, LinkedHashMap , TreeMap , HashTable klassları implements edir Map interface-in.

Map interface-i key value prinsipi ilə işləyir. Map-də təkrarlanan key ola bilməz ancaq təkrarlanan value ola bilər. Buna misal çəkməli olsaq məsələn şəxsiyyət vəsiqələrindəki fin koda nəzər yetirin ölkədə 1000 nəfər Laçın ola bilər ancaq hər Laçın adlı vətəndaşın fin kodu fərqli olacaqdır. Fin kod burada key-dir value isə Laçın.

HashMap:

Sıralamayı qaranti etmir , key və value Null dəyər qəbul edə bilir.

TreeMap:

Elementləri artan sıra ilə yaddaşda saxlayır. Key Null dəyər qəbul etmir ancaq value Null ola bilər.

HashTable :

Eyni HashMap kimidir fərqi synchronized çalışır və buda surətdə zəif olduğun bildirir. HashTable — Null dəyər qəbul etmir. Null dəyər göndərdikdə NullPointerException xətası çap edir.

Hazırladı : Laçın Quluyev

--

--