JavaRush /Java Blogu /Random-AZ /Kofe fasiləsi №185. Java Kolleksiya Çərçivəsi üçün Komple...

Kofe fasiləsi №185. Java Kolleksiya Çərçivəsi üçün Kompleks Bələdçi

Qrupda dərc edilmişdir
Mənbə: Orta Bu dərslik sizə Java Collection Framework-ə daxil olan müxtəlif siniflərin və interfeyslərin işini daha yaxşı başa düşməyə kömək edəcək. Kofe fasiləsi №185.  Java Kolleksiya Çərçivəsi üçün Kompleks Bələdçi - 1Java Collection bir qrup obyektin saxlanması və idarə edilməsi üçün vahid arxitektura təmin edən çərçivədir. Özündə Java dilində obyektlərin kolleksiyalarını təmsil etmək və manipulyasiya etmək üçün standart üsul təmin edən siniflər və interfeyslər toplusudur. Çərçivə həmçinin Siyahı, Set və Xəritə kimi çox istifadə olunan məlumat strukturlarının həyata keçirilməsinə kömək edir. Java Collection Framework bir neçə interfeys və sinifləri ehtiva edir. Onlardan bəzilərinin siyahısını təqdim edirik:

İnterfeyslər

Java Kolleksiya Çərçivəsindəki interfeyslər kolleksiyalarda yerinə yetirilə bilən ümumi davranış və əməliyyatları müəyyən edir. Buraya elementlərin əlavə edilməsi və ya çıxarılması, kolleksiyadakı elementlərin təkrarlanması və s. daxildir.
  • Kolleksiya : Elementlər kimi tanınan obyektlər qrupunu təmsil edən kolleksiya iyerarxiyasındakı kök interfeys.
  • Siyahı : Dublikasiyaya imkan verən elementlərin sifarişli toplusu.
  • Set : təkrarlamaya icazə verməyən elementlər toplusu.
  • Xəritə : hər bir açarın unikal olduğu açar-dəyər cütlərinin toplusu.
  • Növbə : Növbə elementləri ilk gələn ilk çıxar (FIFO) qaydasında saxlamaq üçün istifadə edilən məlumat strukturudur.
Bu siyahıya hər şey daxil deyil, yalnız Java Collection Framework-də ən çox istifadə olunan interfeyslər daxildir. İndi onların hər birinə daha yaxından nəzər salaq.

Kolleksiya

Kolleksiya onun elementləri kimi tanınan obyektlər qrupudur. Bu, digər obyektlərə istinadlar ehtiva edə bilən bir obyektdir. Kolleksiya interfeysi kolleksiya iyerarxiyasının köküdür. Bu Java Collection Framework-dəki bütün kolleksiyalar üçün əsas interfeysdir. O , add() , remove()contain() kimi bütün kolleksiyalarda tətbiq edilməli olan əsas metodları müəyyənləşdirir . Java Collection Framework-də kolleksiyalardan istifadə nümunəsidir. Burada Kolleksiya interfeysi kolleksiyaya elementlər əlavə etmək və silmək üçün istifadə olunur:
import java.util.Collection;
import java.util.ArrayList;

public class CollectionExample {
    public static void main(String[] args) {
        // Создаем новую коллекцию
        Collection<String> stringCollection = new ArrayList<>();

        // Добавляем несколько элементов в коллекцию
        stringCollection.add("hello");
        stringCollection.add("world");
        stringCollection.add("foo");
        stringCollection.add("bar");

        // Печатаем число элементов в коллекции
        System.out.println("Number of elements: " + stringCollection.size());

        // Удаляем элемент из коллекции
        stringCollection.remove("foo");

        // Опять печатаем число элементов в коллекции
        System.out.println("Number of elements: " + stringCollection.size());
    }
}
Çıxış belədir:
Elementlərin sayı: 4 Elementlərin sayı: 3
Gördüyünüz kimi, Kolleksiya interfeysi obyektlər toplusu ilə ümumi əməliyyatları yerinə yetirmək üçün sadə və rahat üsuldur. Java-da kolleksiyalarla işləyərkən tez-tez başlanğıc nöqtəsi kimi istifadə olunur. Java Collection Framework müxtəlif növ kolleksiyalar üçün ümumi davranışı müəyyən edən bir neçə interfeysi ehtiva edir. Onlardan bəziləri java.util.Collection interfeys qrupunun bir hissəsidir :
  • java.util.List
  • java.util.set
  • java.util.Queue

java.util.List

Siyahı, hər bir elementi siyahıda müəyyən bir mövqe tutan obyektlərin sifarişli toplusudur. Siyahı interfeysi Kolleksiya interfeysini genişləndirir və siyahılarla işləmək üçün bir neçə üsul əlavə edir, məsələn, siyahıdakı mövqelərinə görə elementlərə daxil olmaq üsulları və siyahıların axtarışı və çeşidlənməsi üsulları. Siyahıda dublikat elementlər ola bilər , bu elementlərə siyahıdakı yerləri ilə daxil olmaq olar. Siyahıya elementləri əlavə etmək, silmək və daxil olmaq üçün Siyahı interfeysindən istifadə nümunəsi:
import java.util.List;
import java.util.ArrayList;

public class ListExample {
    public static void main(String[] args) {
        // Создаем новый список
        List<String> stringList = new ArrayList<>();

        // Добавляем несколько элементов в список
        stringList.add("India");
        stringList.add("UAE");
        stringList.add("London");
        stringList.add("US");

        // Печатаем первый элемент в списке
        System.out.println("First element: " + stringList.get(0));

        // Удаляем второй элемент из списка
        stringList.remove(1);

        // Печатаем второй элемент в списке
        System.out.println("Second element: " + stringList.get(1));
    }
}
Nəticə:
Birinci element: Hindistan İkinci element: London
Yuxarıda göstərildiyi kimi, Siyahı interfeysi elementlərin sifarişli kolleksiyaları ilə işləmək üçün rahat üsul təqdim edir. O, adətən kolleksiyadakı elementlərin sırasını saxlamaq lazım olduqda və ya siyahıda onların indeksinə görə elementlərə daxil olmaq lazım olduqda istifadə olunur.

java.util.Set

Java Kolleksiya Çərçivəsindəki Set təkrar elementlərə icazə verməyən unikal elementlərin sıralanmamış dəstidir . Set interfeysi Kolleksiya interfeysini genişləndirir və elementin dəstdə olub-olmadığını yoxlamaq üsulları və dəstdən elementlərin əlavə edilməsi və çıxarılması üsulları kimi bir neçə üsul əlavə edir. Java Kolleksiya Çərçivəsində dəstdən elementlər əlavə etmək və silmək üçün Set interfeysindən istifadə nümunəsidir:
import java.util.Set;
import java.util.HashSet;

public class SetExample {
    public static void main(String[] args) {
        // Создаем новый set
        Set<String> stringSet = new HashSet<>();

        // Добавляем несколько элементов в set
        stringSet.add("Jan");
        stringSet.add("Feb");
        stringSet.add("March");
        stringSet.add("April");

        // Проверяем наличие в set element "March"
        if (stringSet.contains("March")) {
            System.out.println("The set contains the element 'March'");
        }

        // Удаляем элемент "April" из set
        stringSet.remove("April");

        // Опять проверяем наличие element "April" в set
        if (!stringSet.contains("April")) {
            System.out.println("The set no longer contains the element 'April'");
        }
    }
}
Nəticə:
Dəstdə 'Mart' elementi var Setdə artıq 'Aprel' elementi yoxdur

java.util.Queue

Növbə elementləri ilk gələn ilk çıxar (FIFO) qaydasında saxlamaq üçün istifadə edilən məlumat strukturudur. Bu o deməkdir ki, növbəyə əlavə edilən ilk element silinən ilk element olacaq. Java Collection Framework-də növbədən necə istifadə olunacağına dair bir nümunə:
// Creation очереди
Queue<String> queue = new LinkedList<>();

// Добавление элементов в очередь
queue.add("apple");
queue.add("banana");
queue.add("orange");
// Печатаем очередь
System.out.println("Queue: " + queue);
// Удаляем элемент из очереди
String element = queue.remove();
System.out.println("Removed element: " + element);
// Печатаем обновленную очередь
System.out.println("Queue: " + queue);
Bu nümunədə biz sətir növbəsi yaratdıq və ona üç element əlavə etdik: “alma”, “banan” və “portağal”. Sonra hazırkı vəziyyətini görmək üçün növbəni çap edirik. Sonra, elementi növbədən çıxarırıq və onu konsola çap edirik. Nəhayət, silinmiş elementin artıq növbədə olmadığından əmin olmaq üçün yenilənmiş növbəni çap edirik.

Xəritə

Java Collection Framework-dəki java.util.Map interfeysi açarları dəyərlərə uyğunlaşdırmaq üçün istifadə olunur. O, elementləri açar-dəyər cütləri kimi saxlamağa imkan verir və xəritədəki elementlərə daxil olmaq, dəyişdirmək və təkrarlamaq üçün üsullar təqdim edir. Aşağıda Xəritə interfeysindən istifadə nümunəsi verilmişdir :
// Создаем Map
 Map<String, Integer> map = new  HashMap <>();
// Добавляем элементы в Map
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// Печать Map
 System.out.println("Map: " + map);
// Получаем meaning для определенного ключа
int  value  = map.get( "banana" );
System.out.println("Value for 'banana': " + value);
// Удаляем элемент из Map
map.remove("orange");
// Печать обновленной карты
 System.out.println( "Map: " + map);
Bu misalda biz ona üç element əlavə etməklə sətirlərin və tam ədədlərin xəritəsini yaradırıq: “alma” 1, “banan” 2 və “narıncı” 3 uyğun gəlir. Sonra onun cari mənasını görmək üçün xəritəni çap edirik. Bundan sonra, "banan" açarının dəyərini alırıq və onu konsola çap edirik. Nəhayət, “narıncı” üçün açar-dəyər cütünü xəritədən çıxarırıq və silinmiş elementin artıq orada olmadığını görmək üçün yenilənmiş xəritəni çap edirik.

Dərslər

Sinif kolleksiya interfeysinin konkret tətbiqidir. Çərçivədəki interfeyslər tərəfindən müəyyən edilmiş ümumi davranış və əməliyyatların xüsusi tətbiqlərini təmin edir.
  • ArrayList : Ölçü dəyişdirilə bilən massivlə Siyahı interfeysinin tətbiqi .
  • LinkedList : ikiqat əlaqəli siyahı, ListDeque interfeyslərinin tətbiqi .
  • HashSet : Saxlama üçün hash cədvəlindən istifadə edən Set tətbiqi .
  • TreeSet : Saxlama üçün ağacdan istifadə edən Setin tətbiqi .
  • HashMap : Saxlama üçün hash cədvəlindən istifadə edən Xəritənin tətbiqi .
Yuxarıdakı siyahı Java Collection Framework-də ən çox istifadə olunan siniflərdən biridir. İndi bu siniflərin ətraflı izahatına baxaq.

ArrayList

Java kolleksiyalarındakı java.util.ArrayList sinfi siyahıda ölçüsü dəyişdirilə bilən elementlər massivini saxlamaq üçün istifadə olunur. Bu , elementləri saxlamaq üçün massivdən istifadə edən və siyahıdakı elementlərə daxil olmaq, dəyişdirmək və təkrarlamaq üçün səmərəli üsulları təmin edən java.util.List interfeysinin geniş istifadə olunan tətbiqidir . java.util.ArrayList sinfi öz elementlərinə sürətli təsadüfi girişi təmin edir, lakin təsadüfi mövqelərdə yavaş daxil edilməsini və çıxarılmasını təmin edir. Aşağıda Java Collection Framework-də ArrayList sinfindən istifadə nümunəsi verilmişdir :
// Создаем array list
List<String> list = new ArrayList<>();
// Добавляем элементы в array list
list.add("qa");
list.add("devops");
list.add("dev");
// Печатаем array list
System.out.println("Array list: " + list);
// Доступ к элементу по определенному индексу
String element = list.get(1);
System.out.println("Element at index 1: " + element);
// Удаление element из the array list
list.remove(1);
// Print the updated array list
System.out.println("Array list: " + list);
Gördüyünüz kimi, biz sətirlər massivi yaratdıq və ona üç element əlavə etdik: “qa”, “devops” və “dev”. Daha sonra onun cari vəziyyətini görmək üçün massiv siyahısını çap etdik. Bundan sonra 1-ci indeksdəki elementə daxil oluruq və onu konsola çap edirik. Nəhayət, 1-ci indeksdəki elementi massiv siyahısından çıxarırıq və silinmiş elementin artıq siyahıda olmaması üçün yenilənmiş massiv siyahısını çap edirik.

LinkedList

Java Kolleksiya Çərçivəsindəki java.util.LinkedList sinfi AbstractList sinfindən miras alır və ListDeque interfeyslərini həyata keçirir . O, siyahının əvvəlində və sonunda elementləri əlavə etmək, silmək və onlara daxil olmaq üçün səmərəli üsulları təmin edir. Bu Sinif həm də elementləri saxlamaq üçün ikiqat əlaqəli siyahıdan istifadə edən Siyahı interfeysinin tətbiqidir . O, ixtiyari mövqelərdə sürətli daxiletmə və silinməni təmin edir, lakin onun elementlərinə təsadüfi girişi yavaşlatır. Java Collection Framework-də LinkedList sinifindən necə istifadə olunacağına dair bir nümunə :
// Создаем linked list
List<String> list = new LinkedList<>();
// Добавляем элементы в linked list
list.add("selenium");
list.add("cypress");
list.add("playwright");
// Печатаем linked list
System.out.println("Linked list: " + list);
// Добавляем элемент в начало списка
list.add(0, "webdriver.io");
// Печатаем обновленный linked list
System.out.println("Linked list: " + list);
// Удаляем первый элемент в списке
list.remove(0);
// Еще раз печатаем обновленный linked list
System.out.println("Linked list: " + list);
Bu nümunədə biz simlərin əlaqəli siyahısını yaratdıq və ona üç element əlavə etdik: "selenium", "sərv" və "dramaturq". Sonra onun cari vəziyyətini görmək üçün əlaqəli siyahını çap edirik. Sonra, siyahının əvvəlinə “webdriver.io” elementini əlavə edirik və yenilənmiş əlaqəli siyahını çap edirik. Nəhayət, siyahıdan birinci elementi çıxarırıq və silinmiş elementin artıq siyahıda olmadığını görmək üçün yenilənmiş əlaqəli siyahını yenidən çap edirik.

HashSet

Java Kolleksiya Çərçivəsindəki java.util.HashSet sinfi dəstdə unikal elementlər kolleksiyasını saxlamaq üçün istifadə olunur. O, java.util.Set interfeysinin hash cədvəli əsasında həyata keçirilməsini təmin edir. O, həmçinin sürətli daxiletmə, silmə və axtarışı təmin edir, lakin onun elementlərinin sırasını qorumur. Aşağıda Java Collection Framework-də HashSet sinfindən istifadə nümunəsi verilmişdir :
// Создаем hash set
Set<String> set = new HashSet<>();

// Добавляем элементы в hash set
set.add("rose");
set.add("lily");
set.add("lotus");
// Попытка добавить повторяющийся элемент
set.add("rose");
// Печатаем hash set
System.out.println("Hash set: " + set);
// Удаляем элемент из hash set
set.remove("lily");
// Печать обновленного hash set
System.out.println("Hash set: " + set);
Burada biz sətirlərin hash dəsti yaratdıq və ona üç element əlavə etdik: “gül”, “zanbaq” və “lotus”. Sonra yenidən “gül” elementini əlavə etməyə çalışırıq, lakin hash dəsti dublikatlara icazə vermədiyi üçün əlavə edilməyəcək. Bundan sonra cari vəziyyətini görmək üçün hash dəstini çap edirik. Sonra “zanbaq” elementini dəstdən çıxarırıq və silinmiş elementin artıq dəstdə olmadığını görmək üçün dəstin yenilənmiş hashını çap edirik.

TreeSet

Java Kolleksiya Çərçivəsindəki java.util.TreeSet sinfi artan qaydada çeşidlənmiş dəstdə unikal elementlər kolleksiyasını saxlamaq üçün istifadə olunur. O , dublikat elementlərə icazə vermədən elementləri saxlamaq üçün java.util.Set interfeysinin ağac əsaslı tətbiqini təmin edir . Sinif sürətli daxiletmə, silinmə və axtarışı təmin edir və elementlərinin təbii sırasına və ya müqayisəçisinə uyğun olaraq sırasını saxlayır. Java Collection Framework-də TreeSet sinfindən necə istifadə olunacağına dair bir nümunə :
// Создаем tree set
Set<String> set = new TreeSet<>();

// Добавляем элементы в tree set
set.add("apple");
set.add("banana");
set.add("orange");
// Попытка добавить повторяющийся элемент
set.add("apple");
// Печатаем tree set
System.out.println("Tree set: " + set);
// Удаляем элемент из tree set
set.remove("banana");
// Печатаем обновленный tree set
System.out.println("Tree set: " + set);
Bu misalda biz sətirlərdən ibarət ağac dəsti yaradırıq və ona üç element əlavə edirik: “alma”, “banan” və “portağal”. Sonra yenidən “alma” elementini əlavə etməyə çalışırıq, lakin ağac dəsti dublikatlara icazə vermədiyi üçün əlavə edilməyəcək. Bundan sonra ağacın hazırkı vəziyyətini görmək üçün dəsti çap edirik. Ağac dəsti artan qaydada çeşidləndiyi üçün elementlər ardıcıllıqla çap olunacaq: “alma”, “banan” və “portağal”. Sonra “banan” elementini dəstdən çıxarırıq və çıxarılan elementin artıq dəstdə olmadığını görmək üçün yenilənmiş ağac dəstini çap edirik.

HashMap

Java Kolleksiya Çərçivəsindəki java.util.HashMap sinfi xəritədəki dəyərlərə düymələrin xəritələşdirilməsini saxlamaq üçün istifadə olunur. O, java.util.Map interfeysinin hash cədvəli əsasında həyata keçirilməsini təmin edir və elementləri açar-dəyər cütləri kimi saxlamağa imkan verir. Sinif sürətli daxiletmə, silmə və axtarışı təmin edir, lakin onun elementlərinin sırasını qorumur. Java Collection Framework-də HashMap sinfindən necə istifadə olunacağına dair bir nümunə :
// Создаем hash map
Map<String, Integer> map = new HashMap<>();

// Добавляем элементы в hash map
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// Печатаем hash map
System.out.println("Hash map: " + map);
// Получаем meaning для определенного ключа
int value = map.get("banana");
System.out.println("Value for 'banana': " + value);
// Удаляем элемент из hash map
map.remove("orange");
// Печатаем обновленный hash map
System.out.println("Hash map: " + map);
Bu misalda biz tam sətirlərin hash xəritəsini yaradırıq və ona üç element əlavə edirik: “alma” 1-ə, “banan” 2-yə və “narıncı” 3-ə uyğun gəlir. Sonra onu cari vəziyyətə görmək üçün hash xəritəsini çap edirik. Bundan sonra, "banan" açarının dəyərini alırıq və onu konsola çap edirik. Nəhayət, “narıncı” üçün açar-dəyər cütünü hash xəritəsindən çıxarırıq və silinmiş elementin artıq orada olmadığını görmək üçün yenilənmiş hash xəritəsini çap edirik.

Nəticə

Java Kolleksiya Çərçivəsi Java proqramlaşdırma dilində obyektlərin kolleksiyalarını təmsil etmək və manipulyasiya etmək üçün standart üsul təmin edən siniflər və interfeyslər toplusudur. Bu, tərtibatçılara/sınaqçılara obyektlərin kolleksiyaları ilə ardıcıl və səmərəli şəkildə işləməyə imkan verir. Çərçivə onları kolleksiyadakı elementləri saxlamaq, daxil olmaq və idarə etmək üsulları ilə təmin edir və tətbiqin tələblərindən asılı olaraq müxtəlif kolleksiya tətbiqləri arasında asanlıqla keçid etməyə imkan verir.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION