JavaRush /Java Blog /Random-TK /Kofe arakesmesi # 185. Java ýygyndy çarçuwasy barada giňi...

Kofe arakesmesi # 185. Java ýygyndy çarçuwasy barada giňişleýin gollanma

Toparda çap edildi
Çeşme: Orta Bu gollanma, Java kolleksiýa çarçuwasyna girizilen dürli synplaryň we interfeýsleriň işine has gowy düşünmäge kömek eder. Kofe arakesmesi # 185.  Java ýygyndy çarçuwasy barada giňişleýin gollanma - 1Java Collection, obýektleriň toparyny saklamak we dolandyrmak üçin bitewi arhitekturany üpjün edýän çarçuwadyr. Onuň özeni, Java dilindäki obýektleriň ýygyndysyny görkezmegiň we dolandyrmagyň adaty usulyny üpjün edýän synplaryň we interfeýsleriň toplumydyr. Çarçuwa, şeýle hem Sanaw, Set we Karta ýaly köp ulanylýan maglumat gurluşlaryny durmuşa geçirmäge kömek edýär. Java ýygyndy çarçuwasy birnäçe interfeýsi we synplary öz içine alýar. Ine, olaryň käbirleriniň sanawy:

Interfeýsler

Java ýygyndy çarçuwasyndaky interfeýsler, kolleksiýalarda ýerine ýetirilip bilinjek umumy özüni alyp barşy we amallary kesgitleýär. Bu zatlary goşmak ýa-da aýyrmak, ýygyndydaky zatlary gaýtalamak we ş.m.
  • Collectionygyndy : elementler diýlip atlandyrylýan obýektleriň toparyny görkezýän kolleksiýa iýerarhiýasyndaky kök interfeýs.
  • Sanaw : köpeltmäge mümkinçilik berýän sargyt edilen ýygyndy.
  • Gurnama : köpeltmäge ýol bermeýän elementleriň ýygyndysy.
  • Karta : her açar özboluşly bolan açar bahaly jübütleriň ýygyndysy.
  • Nobat : nobat, “First-In-First-Out” (FIFO) -da elementleri saklamak üçin ulanylýan maglumat gurluşydyr.
Bu sanaw hemme zady öz içine almaýar, diňe Java kolleksiýa çarçuwasynda iň köp ulanylýan interfeýsler. Indi olaryň hersine has içgin seredeliň.

Collectionygyndy

Collectionygyndy, elementleri diýlip atlandyrylýan obýektleriň toparydyr. Bu, beýleki obýektlere salgylanmalary öz içine alyp bilýän obýekt. Kolleksiýa interfeýsi ýygnamak iýerarhiýasynyň kökidir. Bu Java kolleksiýa çarçuwasyndaky ähli kolleksiýalar üçin esasy interfeýsdir. Goşmak () , aýyrmak () we () ýaly ähli ýygyndylarda durmuşa geçirilmeli esasy usullary kesgitleýär . Ine, Java kolleksiýa çarçuwasyndaky kolleksiýalary ulanmagyň mysaly. Bu ýerde ýygyndy interfeýsi ýygyndydan elementleri goşmak we aýyrmak üçin ulanylýar:
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());
    }
}
Çykyş:
Elementleriň sany: 4 Elementleriň sany: 3
Görşüňiz ýaly, Toplama interfeýsi obýektleriň ýygyndysy bilen umumy amallary ýerine ýetirmegiň ýönekeý we amatly usulydyr. Java-da kolleksiýalar bilen işleşende köplenç başlangyç nokat hökmünde ulanylýar. Java kolleksiýa çarçuwasy dürli kolleksiýalaryň umumy häsiýetini kesgitleýän birnäçe interfeýsi öz içine alýar. Olaryň käbiri java.util.Collection interfeýs toparynyň bir bölegi :
  • java.util.List
  • java.util.set
  • java.util.Queue

java.util.List

Sanaw, sanawda belli bir orny eýeleýän obýektleriň sargyt edilen ýygyndysydyr. Sanaw interfeýsi Kolleksiýa interfeýsini giňeldýär we sanawlar bilen işlemek üçin birnäçe usullary goşýar, mysal üçin sanawdaky ornuna elementlere girmegiň usullary we sanawlary gözlemek we tertiplemek usullary. Sanawda dublikat elementler bolup biler , bu elementlere sanawdaky orny bilen girip bolýar. Sanawdaky elementleri goşmak, aýyrmak we olara girmek üçin Sanaw interfeýsini ulanmagyň mysaly:
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));
    }
}
Netije:
Birinji element: Hindistan Ikinji element: London
Aboveokarda görkezilişi ýaly, Sanaw interfeýsi sargyt edilen elementleriň ýygyndylary bilen işlemegiň amatly usulyny üpjün edýär. Adatça ýygyndydaky elementleriň tertibini saklamaly bolanyňyzda ýa-da sanawdaky elementleri boýunça elementlere girmeli bolanyňyzda ulanylýar.

java.util.Set

Java kolleksiýa çarçuwasyndaky toplum, elementleriň köpeldilmegine ýol bermeýän üýtgeşik elementleriň tertipsiz toplumydyr . Set interfeýsi Kolleksiýa interfeýsini giňeldýär we bir elementiň toplumda bardygyny barlamak usullary we toplumdan elementleri goşmak we aýyrmak usullary ýaly birnäçe usuly goşýar. Java ýygyndy çarçuwasyndaky toplumdan elementleri goşmak we aýyrmak üçin Set interfeýsini ulanmagyň mysaly:
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'");
        }
    }
}
Netije:
Toplumda 'Mart' elementi bar, toplumda indi 'aprel' elementi ýok.

java.util.Queue

Bir nobat, elementleri ilkinji gezek (FIFO) tertipde saklamak üçin ulanylýan maglumat gurluşydyr. Bu, nobata goşulan ilkinji elementiň aýrylan ilkinji element boljakdygyny aňladýar. Java ýygyndy çarçuwasynda nobaty nädip ulanmalydygynyň mysaly:
// 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 mysalda setir nobatyny döretdik we oňa üç element goşduk: “alma”, “banan” we “mämişi”. Soňra häzirki ýagdaýyny görmek üçin nobaty çap edýäris. Soň bolsa, elementi nobatdan aýyrýarys we konsola çap edýäris. Ahyrynda, aýrylan elementiň nobatda durmazlygyny üpjün etmek üçin täzelenen nobaty çap edýäris.

Karta

Java kolleksiýa çarçuwasyndaky java.util.Map interfeýsi bahalaryň açarlaryny kartalaşdyrmak üçin ulanylýar. Elementleri açar bahaly jübüt hökmünde saklamaga mümkinçilik berýär we kartadaky elementlere girmek, üýtgetmek we gaýtalamak usullaryny üpjün edýär. Aşakda Karta interfeýsini ulanmagyň mysaly :
// Создаем 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 mysalda, üç element goşmak bilen setirleriň we bitewi sanlaryň kartasyny döredýäris: “alma” 1, “banan” 2, “apelsin” gabat gelýär 3. Soňra kartany häzirki manysyny görmek üçin çap edýäris. Ondan soň, "banan" düwmesiniň bahasyny alýarys we konsola çap edýäris. Ahyrynda, “mämişi” üçin açar bahaly jübüti kartadan aýyrýarys we aýrylan elementiň ýokdugyny görmek üçin täzelenen kartany çap edýäris.

Sapaklar

Klass, ýygnamak interfeýsiniň anyk ýerine ýetirilişi. Çarçuwadaky interfeýsler bilen kesgitlenen umumy özüni alyp barşyň we amallaryň anyk ýerine ýetirilmegini üpjün edýär.
  • ArrayList : Ölçegli massiw bilen Sanaw interfeýsiniň ýerine ýetirilişi .
  • LinkedList : iki gezek baglanyşdyrylan sanaw, Sanaw we Deque interfeýsleriniň ýerine ýetirilişi .
  • HashSet : Saklamak üçin hash tablisasyny ulanýan Setiň ýerine ýetirilişi .
  • TreeSet : Saklamak üçin agajy ulanýan Setiň ýerine ýetirilişi .
  • HashMap : Saklamak üçin hash tablisasyny ulanýan Kartanyň ýerine ýetirilişi .
Aboveokardaky sanaw, Java kolleksiýa çarçuwasynda iň köp ulanylýan sapaklaryň biridir. Indi bu synplaryň jikme-jik düşündirişine seredeliň.

ArrayList

Java kolleksiýalarynda java.util.ArrayList synpy üýtgeýän elementleriň sanawyny sanawda saklamak üçin ulanylýar. Bu elementleri saklamak üçin bir massiw ulanýan we sanawdaky elementlere girmek, üýtgetmek we gaýtalamak üçin täsirli usullary üpjün edýän java.util.List interfeýsiniň giňden ulanylmagydyr . Java.util.ArrayList synpy elementlerine çalt tötänleýin girmegi üpjün edýär, ýöne tötänleýin ýerleşdirmek we aýyrmak. Aşakda Java Collection Framework-da ArrayList synpyny ulanmagyň mysaly :
// Создаем 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örşüňiz ýaly, setirler toplumyny döretdik we oňa üç element goşduk: “qa”, “devops” we “dev”. Soňra häzirki ýagdaýyny görmek üçin massiw sanawyny çap etdik. Ondan soň, 1-nji indeksdäki elemente girýäris we konsola çap edýäris. Ahyrynda, 1-nji indeksdäki elementi massiw sanawyndan aýyrýarys we aýrylan elementiň sanawda ýokdugyny anyklamak üçin täzelenen massiw sanawyny çap edýäris.

Baglanyşyk sanawy

Java kolleksiýa çarçuwasyndaky java.util.LinkedList synpy AbstractList synpyndan miras alýar we Sanaw we Deque interfeýslerini ýerine ýetirýär . Sanawyň başynda we ahyrynda elementleri goşmak, aýyrmak we olara girmek üçin täsirli usullary üpjün edýär. Bu synp , elementleri saklamak üçin goşa baglanyşykly sanawy ulanýan Sanaw interfeýsiniň ýerine ýetirilişidir . Esassyz ýerlerde çalt girizmegi we pozmagy üpjün edýär, ýöne elementlerine haýal tötänleýin giriş. “Java Collection Framework” -da “LinkedList” synpyny nädip ulanmalydygynyň mysaly :
// Создаем 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 mysalda setirleriň baglanyşdyrylan sanawyny döretdik we oňa üç element goşduk: “selen”, “serwi” we “dramaturg”. Soňra häzirki ýagdaýyny görmek üçin baglanyşdyrylan sanawy çap edýäris. Ondan soň, sanawyň başyna “webdriver.io” elementini goşýarys we täzelenen baglanyşyk sanawyny çap edýäris. Netijede, ýok edilen elementiň sanawda ýokdugyny görmek üçin sanawdan birinji elementi aýyrýarys we täzelenen baglanyşyk sanawyny täzeden çap edýäris.

HashSet

Java kolleksiýa çarçuwasyndaky java.util.HashSet synpy özboluşly elementleriň ýygyndysyny toplumda saklamak üçin ulanylýar. Java.util.Set interfeýsiniň hash tablisasyna esaslanýan ýerine ýetirişini üpjün edýär . Şeýle hem çalt girizmegi, pozmagy we gözlemegi üpjün edýär, ýöne elementleriniň tertibini saklamaýar. Aşakda Java ýygyndy çarçuwasynda HashSet synpyny ulanmagyň mysaly :
// Создаем 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);
Bu ýerde hash setirler toplumyny döretdik we oňa üç element goşduk: “gül”, “lili” we “lotos”. Soňra ýene “gül” elementini goşmaga synanyşýarys, ýöne hash toplumy köpeltmäge rugsat bermeýänligi sebäpli, goşulmaz. Ondan soň häzirki ýagdaýyny görmek üçin hash toplumyny çap edýäris. Soňra “lili” elementini toplumdan aýyrýarys we aýyrylan elementiň indi ýokdugyny görmek üçin toplumyň täzelenen hashini çap edýäris.

TreeSet

Java kolleksiýa çarçuwasyndaky java.util.TreeSet synpy üýtgeşik elementleriň ýygyndysyny ýokarlanýan tertipde toplumda saklamak üçin ulanylýar. Eva elementlerini köpeltmäge rugsat bermezden saklamak üçin java.util.Set interfeýsiniň agaç esasly ýerine ýetirilmegini üpjün edýär . Synp çalt girizmegi, pozmagy we gözlemegi üpjün edýär we elementleriniň tertibini tebigy tertibine ýa-da deňeşdirijisine görä saklaýar. Java kolleksiýa çarçuwasynda TreeSet synpyny nädip ulanmalydygyna mysal :
// Создаем 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 mysalda agaç setirler toplumyny döredýäris we oňa üç element goşýarys: “alma”, “banan” we “mämişi”. Soňra ýene “alma” elementini goşmaga synanyşýarys, ýöne agaç toplumy köpeltmäge rugsat bermeýänligi sebäpli, goşulmaz. Ondan soň häzirki ýagdaýyny görmek üçin agaç toplumyny çap edýäris. Agaç toplumy ýokarlanýan tertipde tertiplenenligi sebäpli, elementler “alma”, “banan” we “mämişi” tertipde çap ediler. Soňra “banan” elementini toplumdan aýyrýarys we aýrylan elementiň indi ýokdugyny görmek üçin täzelenen agaç toplumyny çap edýäris.

HashMap

Java kolleksiýa çarçuwasyndaky java.util.HashMap synpy, açarlaryň bahalaryň kartalaşdyrylmagyny kartada saklamak üçin ulanylýar. Java.util.Map interfeýsiniň hash tablisasyna esaslanýan ýerine ýetirişini üpjün edýär we elementleri açar baha jübütleri hökmünde saklamaga mümkinçilik berýär. Synp çalt girizmegi, pozmagy we gözlemegi üpjün edýär, ýöne elementleriniň tertibini saklamaýar. Java ýygyndy çarçuwasynda HashMap synpyny nädip ulanmalydygynyň mysaly :
// Создаем 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 mysalda bitewi setirleriň hash kartasyny döredýäris we oňa üç element goşýarys: “alma” 1, “banan” 2, “mämişi” gabat gelýär 3. Soňra haş kartasyny häzirki ýagdaýyny görmek üçin çap edýäris. Ondan soň, "banan" düwmesiniň bahasyny alýarys we konsola çap edýäris. Netijede, “mämişi” üçin açar bahaly jübüti hash kartasyndan aýyrýarys we aýrylan elementiň indi ýokdugyny görmek üçin täzelenen hash kartasyny çap edýäris.

Netije

Java kolleksiýa çarçuwasy, Java programmirleme dilinde obýektleriň kolleksiýalaryny görkezmegiň we dolandyrmagyň adaty usulyny üpjün edýän synplaryň we interfeýsleriň toplumydyr. Bu döredijilere / synagçylara obýektleriň ýygyndysy bilen yzygiderli we täsirli işlemäge mümkinçilik berýär. Çarçuwalar, kolleksiýadaky zatlary saklamak, girmek we dolandyrmak usullary bilen üpjün edýär we programmanyň talaplaryna baglylykda dürli kolleksiýa amallarynyň arasynda aňsatlyk bilen geçmäge mümkinçilik berýär.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION