JavaRush /Java блогу /Random-KY /Кофе-брейк №185. Java Collection Framework үчүн комплекст...

Кофе-брейк №185. Java Collection Framework үчүн комплекстүү колдонмо

Группада жарыяланган
Булак: Орто Бул окуу куралы сизге Java Collection Framework камтылган ар кандай класстардын жана интерфейстердин иштешин жакшыраак түшүнүүгө жардам берет. Кофе-брейк №185.  Java Collection Framework үчүн комплекстүү колдонмо - 1Java Collection – бул an objectтердин тобун сактоо жана башкаруу үчүн бирдиктүү архитектураны камсыз кылган алHow. Негизинен бул Java тorндеги an objectтердин коллекцияларын көрсөтүүнүн жана башкаруунун стандарттуу жолун камсыз кылган класстардын жана интерфейстердин жыйындысы. АлHow ошондой эле Тизме, Set жана Карта сыяктуу кеңири колдонулган маалымат структураларын ишке ашырууга жардам берет. Java Collection Framework бир нече интерфейстерди жана класстарды камтыйт. Бул жерде алардын айрымдарынын тизмеси:

Interfaces

Java Collection Framework ичиндеги интерфейстер коллекцияларда аткарыла турган жалпы жүрүм-турумду жана операцияларды аныктайт. Буга элементтерди кошуу же алып салуу, коллекциядагы нерселерди кайталоо жана башкалар кирет.
  • Коллекция : Элементтер деп аталган an objectтердин тобун билдирген коллекция иерархиясындагы тамыр интерфейси.
  • Тизме : кайталанууга мүмкүндүк берүүчү элементтердин иреттелген жыйнагы.
  • Set : кайталанууга жол бербеген элементтердин жыйындысы.
  • Карта : ар бир ачкыч уникалдуу болгон ачкыч-маани жуптарынын жыйнагы.
  • Кезек : Кезек биринчи кирген биринчи чыкканда (FIFO) элементтерди сактоо үчүн колдонулган маалымат структурасы.
Бул тизмеде бардыгы камтылган эмес, Java Collection Framework'дун эң көп колдонулган интерфейстери гана. Эми алардын ар бирин кененирээк карап чыгалы.

Коллекция

Коллекция - бул анын элементтери катары белгилүү болгон an objectтердин тобу. Бул башка an objectтерге шилтемелерди камтый турган an object. Коллекция интерфейси коллекция иерархиясынын тамыры болуп саналат. Бул Java Collection Framework ичиндеги бардык коллекциялар үчүн базалык интерфейс. Ал бардык коллекцияларда ишке ашырылышы керек болгон негизги ыкмаларды аныктайт, мисалы add() , remove() жана contain() . Бул жерде Java Collection Framework ичиндеги коллекцияларды колдонуунун мисалы. Бул жерде Collection интерфейси коллекцияга элементтерди кошуу жана алып салуу үчүн колдонулат:
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());
    }
}
чыгаруу болуп саналат:
Элементтердин саны: 4 Элементтердин саны: 3
Көрүнүп тургандай, Collection интерфейси an objectтердин коллекциясы менен жалпы операцияларды аткаруунун жөнөкөй жана ыңгайлуу жолу. Ал көбүнчө Java тorндеги коллекциялар менен иштөөдө баштапкы чекит катары колдонулат. Java Collection Framework коллекциялардын ар кандай түрлөрү үчүн жалпы жүрүм-турумун аныктаган бир нече интерфейстерди камтыйт. Алардын айрымдары java.util.Collection интерфейс тобуна кирет :
  • java.util.List
  • java.util.set
  • java.util.Queue

java.util.List

Тизме – ар бир элементи тизмеде белгилүү орунду ээлеген an objectтердин иреттелген жыйындысы. Тизме интерфейси Коллекция интерфейсин кеңейтет жана тизмелер менен иштөөнүн бир нече ыкмаларын кошот, мисалы, тизмедеги орду боюнча элементтерге жетүү ыкмалары жана тизмелерди издөө жана сорттоо ыкмалары. Тизме кайталанма элементтерди камтышы мүмкүн , бул элементтерге тизмедеги орду боюнча кирүүгө болот. Тизмедеги элементтерди кошуу, алып салуу жана аларга кирүү үчүн Тизме интерфейсин колдонуунун мисалы:
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));
    }
}
Жыйынтык:
Биринчи элемент: Индия Экинчи элемент: Лондон
Жогоруда көрсөтүлгөндөй, List интерфейси элементтердин иреттелген жыйнактары менен иштөөнүн ыңгайлуу жолун камсыз кылат. Ал адатта коллекциядагы элементтердин тартибин сактоо керек болгондо же тизмедеги индекси боюнча элементтерге жетүү керек болгондо колдонулат.

java.util.Set

Java Collection Framework ичиндеги топтом - кайталанма элементтерге жол бербеген уникалдуу элементтердин иретке салынбаган жыйындысы . Set интерфейси Коллекция интерфейсин кеңейтет жана бир нече ыкмаларды кошот, мисалы, элементтин топтомдо бар-жоктугун текшерүү ыкмалары жана топтомдон элементтерди кошуу жана алып салуу ыкмалары. Бул жерде Java Collection Framework топтомуна элементтерди кошуу жана алып салуу үчүн Set интерфейсин колдонуунун мисалы:
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'");
        }
    }
}
Жыйынтык:
Топтомдо "Март" элементи камтылган Топто мындан ары "Апрель" элементи жок

java.util.Queue

Кезек - элементтерди биринчи кирген биринчи чыгуу (FIFO) тартибинде сактоо үчүн колдонулган маалымат структурасы. Бул кезекке кошулган биринчи элемент алынып салынган биринчи элемент болот дегенди билдирет. Бул жерде Java Collection Framework ичинде кезекти кантип колдонуунун мисалы:
// 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);
Бул мисалда биз сап кезегин түзүп, ага үч элементти коштук: “алма”, “банан” жана “апельсин”. Андан кийин анын учурдагы абалын көрүү үчүн кезекти басып чыгарабыз. Андан кийин, элементти кезектен алып салабыз жана аны консолго басып чыгарабыз. Акыр-аягы, алынып салынган элемент кезекте турбашы үчүн жаңыртылган кезекти басып чыгарабыз.

Карта

Java Collection Framework ичиндеги java.util.Map интерфейси ачкычтарды баалуулуктарга салыштыруу үчүн колдонулат. Ал элементтерди ачкыч-маани түгөйлөрү катары сактоого мүмкүндүк берет жана картадагы элементтерге жетүү, өзгөртүү жана итерациялоо ыкмаларын камсыз кылат. Төмөндө Карта интерфейсин колдонуунун мисалы келтирилген :
// Создаем 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);
Бул мисалда биз саптардын жана бүтүн сандардын картасын ага үч элементти кошуу менен түзөбүз: “алма” 1 дал келет, “банан” 2 дал келет жана “апельсин” 3 дал келет. Андан кийин анын учурдагы маанисин көрүү үчүн картаны басып чыгарабыз. Андан кийин, биз "банан" ачкычынын маанисин алып, аны консолго басып чыгарабыз. Акыр-аягы, биз картадан "кызгылт сары" үчүн ачкыч-маани жуптарын алып салабыз жана алынып салынган элемент жок экенин көрүү үчүн жаңыланган картаны басып чыгарабыз.

Класстар

Класс - бул коллекциялык интерфейстин конкреттүү ишке ашырылышы. Ал рамкадагы интерфейстер менен аныкталган жалпы жүрүм-турумдун жана операциялардын конкреттүү ишке ашырылышын камсыз кылат.
  • ArrayList : Өлчөмү өзгөрүлүүчү массив менен List интерфейсинин ишке ашырылышы .
  • LinkedList : кош байланышкан тизме, List жана Deque интерфейстерин ишке ашыруу .
  • HashSet : Сактоо үчүн хэш tableсын колдонгон Setтин ишке ашырылышы .
  • TreeSet : Сактоо үчүн даракты колдонгон Setтин ишке ашырылышы .
  • HashMap : Картаны сактоо үчүн хэш tableсын колдонгон ишке ашыруу .
Жогорудагы тизме Java Collection Framework эң көп колдонулган класстардын бири. Эми бул класстардын деталдуу түшүндүрмөсүн карап көрөлү.

ArrayList

Java коллекцияларындагы java.util.ArrayList классы тизмедеги элементтердин өлчөмүн өзгөртүүчү массивди сактоо үчүн колдонулат. Бул элементтерди сактоо үчүн массивди колдонгон жана тизмедеги элементтер аркылуу жетүү, өзгөртүү жана итерациялоонун эффективдүү ыкмаларын камсыз кылган java.util.List интерфейсинин кеңири колдонулган ишке ашырылышы . java.util.ArrayList классы анын элементтерине тез кокус кирүүнү камсыз кылат, бирок кокус позицияларда жай киргизүү жана алып салуу. Төмөндө Java Collection Framework ичинде ArrayList классын колдонуунун мисалы келтирилген :
// Создаем 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);
Көрүнүп тургандай, биз саптардын массивин түзүп, ага үч элементти коштук: “qa”, “devops” жана “dev”. Андан кийин анын учурдагы абалын көрүү үчүн массивдердин тизмесин басып чыгардык. Андан кийин, биз 1 индексиндеги элементке кирип, аны консолго басып чыгарабыз. Акырында, биз 1-индекстеги элементти массивдердин тизмесинен алып салабыз жана алынып салынган элемент тизмеде мындан ары жок экенине кепилдик берүү үчүн жаңыртылган массив тизмесин басып чыгарабыз.

LinkedList

Java Collection Framework ичиндеги java.util.LinkedList классы AbstractList классынан мурастап, List жана Deque интерфейстерин ишке ашырат . Ал тизменин башында жана аягында элементтерди кошуу, алып салуу жана жетүү үчүн натыйжалуу ыкмаларды камсыз кылат. Бул Класс ошондой эле элементтерди сактоо үчүн кош байланышкан тизмени колдонгон List интерфейсинин ишке ашырылышы болуп саналат . Ал ыктыярдуу позицияларда тез киргизүүнү жана жок кылууну камсыз кылат, бирок анын элементтерине кокусунан кирүү жай. Бул жерде Java Collection Framework ичинде LinkedList классын кантип колдонуунун мисалы :
// Создаем 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);
Бул мисалда биз саптардын байланышкан тизмесин түзүп, ага үч элементти коштук: “селен”, “кипарис” жана “драматург”. Андан кийин анын учурдагы абалын көрүү үчүн шилтемеленген тизмени басып чыгарабыз. Андан кийин, биз тизменин башына "webdriver.io" элементин кошуп, жаңыланган шилтемеленген тизмени басып чыгарабыз. Акырында, биз тизмеден биринчи элементти алып салабыз жана жок кылынган элемент тизмеде жок экенин көрүү үчүн жаңыланган шилтемеленген тизмени кайра басып чыгарабыз.

HashSet

Java Collection Framework ичиндеги java.util.HashSet классы топтомдогу уникалдуу элементтердин коллекциясын сактоо үчүн колдонулат. Бул java.util.Set интерфейсинин хэш tableсына негизделген ишке ашырууну камсыз кылат. Ал ошондой эле тез киргизүү, жок кылуу жана издөөнү камсыз кылат, бирок анын элементтеринин тартибин сактаbyte. Төмөндө Java Collection Framework ичинде HashSet классын колдонуунун мисалы келтирилген :
// Создаем 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);
Бул жерде биз саптардын хэш топтомун түздүк жана ага үч элементти коштук: "роза", "лorя" жана "лотос". Андан кийин биз "роза" элементин кайра кошууга аракет кылабыз, бирок хэш топтому дубликаттарга жол бербегендиктен, ал кошулbyte. Андан кийин анын учурдагы абалын көрүү үчүн хэш топтомун басып чыгарабыз. Андан соң топтомдон “lily” элементин алып салабыз жана алынып салынган элемент топтомдо жок экенин көрүү үчүн топтомдун жаңыртылган хэштерин басып чыгарабыз.

TreeSet

Java Collection Framework ичиндеги java.util.TreeSet классы өсүү тартибинде иреттелген топтомдо уникалдуу элементтердин коллекциясын сактоо үчүн колдонулат. Бул кайталанма элементтерге жол бербестен элементтерди сактоо үчүн java.util.Set интерфейсинин даракка негизделген ишке ашырууну камсыз кылат . Класс тез киргизүүнү, жок кылууну жана издөөнү камсыздайт жана анын элементтеринин тартибин алардын табигый тартибине же компараторуна ылайык сактайт. Бул жерде Java Collection Framework ичинде TreeSet классын кантип колдонуунун мисалы :
// Создаем 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);
Бул мисалда биз саптардын дарак топтомун түзүп, ага үч элементти кошобуз: “алма”, “банан” жана “апельсин”. Андан кийин биз "алма" элементин кайра кошууга аракет кылабыз, бирок дарак топтому дубликаттарга жол бербегендиктен, ал кошулbyte. Андан кийин анын учурдагы абалын көрүү үчүн даракты басып чыгарабыз. Дарак жыйындысы өсүү тартибинде иреттелгендиктен, элементтер иретте басылып чыгат: “алма”, “банан” жана “апельсин”. Андан кийин “банан” элементин топтомдон алып салабыз жана алынып салынган элемент топтомдо жок экенин көрүү үчүн жаңыланган дарак топтомун басып чыгарабыз.

HashMap

Java Collection Framework ичиндеги java.util.HashMap классы картадагы баалуулуктарга ачкычтардын картасын сактоо үчүн колдонулат. Ал java.util.Map интерфейсинин хэш tableсына негизделген ишке ашырууну камсыз кылат жана элементтерди ачкыч-маани түгөйлөрү катары сактоого мүмкүндүк берет. Класс тез киргизүүнү, жок кылууну жана издөөнү камсыз кылат, бирок анын элементтеринин тартибин сактаbyte. Бул жерде Java Collection Framework ичинде HashMap классын кантип колдонуунун мисалы :
// Создаем 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);
Бул мисалда биз бүтүн саптардын хэш картасын түзүп, ага үч элементти кошобуз: “алма” 1 дал келет, “банан” 2 дал келет жана “апельсин” 3 дал келет. Андан соң анын Учурдагы абалын көрүү үчүн хэш картасын басып чыгарабыз. Андан кийин, биз "банан" ачкычынын маанисин алып, аны консолго басып чыгарабыз. Акыр-аягы, биз хэш картадан "кызгылт сары" үчүн ачкыч-маанorк жупту алып салабыз жана алынып салынган элемент анда жок экенин көрүү үчүн жаңыртылган хэш картасын басып чыгарабыз.

Корутунду

Java Collection Framework бул Java программалоо тorндеги an objectтердин коллекцияларын көрсөтүүнүн жана башкаруунун стандарттуу жолун камсыз кылган класстардын жана интерфейстердин жыйындысы. Бул иштеп чыгуучуларга/сыноочуларга an objectтердин коллекциялары менен ырааттуу жана натыйжалуу иштөөгө мүмкүндүк берет. АлHow аларды коллекциядагы элементтерди сактоо, жетүү жана башкаруу ыкмалары менен камсыз кылат жана колдонмонун талаптарына жараша ар кандай коллекцияларды ишке ашыруунун ортосунда оңой которулууга мүмкүндүк берет.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION