java collections framework tutorial
Цей підручник детально пояснює Framework колекцій Java (JCF), а також ієрархію колекцій, різні інтерфейси та переваги JCF:
Сподіваюся, ці красномовні підручники з цього приводу Серія Java для початківців дійсно корисні для збагачення ваших знань про Java.
У нашому попередньому навчальному посібнику було докладно докладніше про основні операції вводу-виводу в Java . У цьому підручнику ми детально дізнаємося про Java Collections Framework (JCF).
Java Collections Framework (JCF) містить інтерфейси, абстрактні класи та класи, які можуть забезпечити архітектуру для зберігання та маніпулювання групою об'єктів.
Що ви дізнаєтесь:
- Відео-підручники з фреймворку Java Collections
- Висновок
Відео-підручники з фреймворку Java Collections
Знання Arraylist на Java:
Встановіть інтерфейс та інтерфейс черги в Java із прикладами реального часу:
HashMap, TreeMap і HashTable в Java:
Дотепер ми бачили змінні, що зберігають різні типи даних. Це єдині одиниці, і вони не дуже корисні, коли у вас є величезна кількість даних для зберігання та обробки. Як ми знаємо, дані є найважливішою складовою комп’ютерної обробки.
Ваша програма повинна мати можливість витягувати та збирати дані, обробляти їх, щоб знаходити корисну інформацію, а також передавати її туди-сюди, щоб її ефективно використовувати для досягнення рішень.
У цьому світі програмного забезпечення ми зберігаємо дані, які повинні бути структуровані таким чином, щоб програми могли зберігати, читати, обробляти та, нарешті, виводити результати. Це робиться за допомогою структур даних.
Майже всі мови програмування підтримують структури даних. Структуру даних можна визначити як структуроване представлення даних. Мови програмування надають функції API (Інтерфейс програмування програм) для маніпулювання структурами даних.
Need For Collection Framework
До Java 1.2 мова програмування Java підтримувала такі структури даних, як масиви, вектори або хеш-таблиці. Виконання операцій з цими структурами даних було непростим, оскільки не було спільного інтерфейсу, який би працював з цими структурами даних.
Раніше програмістам було важко писати алгоритми, які працювали б для всіх структур даних, і це спричиняло великі клопоти. Виникла потреба в загальному інтерфейсі, який би працював послідовно на всіх структурах даних, а також виконував операції ефективно.
Пізніше Java придумала фреймворк колекцій, який являє собою групу класів та інтерфейсів, що складаються з різних операцій, які можна виконувати над структурами даних.
У цьому підручнику Java Collections ми обговоримо структуру Java Collections Framework загалом. Ми вивчимо кожен із компонентів колекції в наших майбутніх підручниках.
Фреймворк Java Collections
Перш ніж ми визначимо платформу Java Collections Framework, давайте дізнаємось про значення колекції та структуру.
Колекцію можна визначити як групу об’єктів. Колекція, як правило, є єдиною одиницею, що складається з більш ніж одного об'єкта. Фреймворк - це програмне забезпечення, яке має готовий функціональний інтерфейс або архітектуру, а також містить набір класів та інтерфейсів, що використовуються з наданим інтерфейсом.
Структура колекцій визначається як уніфікована, готова архітектура, що складається з наведеного нижче.
# 1) Алгоритми
Це методи або набір тверджень, які можуть допомогти програмістам у пошуку, сортуванні та обробці зібраних даних. Колекція постачається з інтерфейсами, класами та алгоритмами.
Додатки, які розробляються шляхом успадкування фреймворку колекції, мають доступ до цих алгоритмів і використовують уже визначені методи та процедури.
# 2) Інтерфейси
Інтерфейси в Java забезпечують абстракцію реалізації, тобто користуючись інтерфейсами, користувач не знає деталей реалізації, але може бачити лише методи та дані, необхідні для написання програми. Інтерфейс колекції має безліч інтерфейсів, які програміст може реалізувати для написання власних класів.
# 3) Заняття
Класи Collection Framework - це структури даних, які можуть бути реалізовані в програмі. Ці класи реалізують інтерфейс “Collection” і таким чином успадковують усі методи та визначення інтерфейсу колекції.
Фреймворк колекції використовується для зберігання та маніпулювання колекцією, що є групою об'єктів.
Структура колекції Java складається з високопродуктивних алгоритмів, які виконують стандартні операції, такі як пошук, сортування та обробка. Він надає різні стандартні реалізації, включаючи LinkedList, TreeSet та HashSet, для яких надаються інтерфейси.
Далі, давайте розберемося в ієрархії Java Collection.
Ієрархія колекції Java
Усі класи та інтерфейси, наведені в наведеній нижче ієрархії Java Collection, належать до пакету “java.util. *”.
Як показано на наведеній вище схемі, Ієрархія колекції Java складається з різних класів та інтерфейсів. Як бачите, кожен клас успадковується від інтерфейсу, а всі класи та інтерфейси, у свою чергу, успадковуються від єдиного інтерфейсу 'колекції'.
Давайте обговоримо деякі поширені методи в інтерфейсі колекції разом із коротким вступом про кожен з класів та інтерфейсів, які показані у вищенаведеній ієрархії.
Інтерфейс колекції
Інтерфейс колекції - це кореневий інтерфейс. Усі класи в структурі колекції реалізують інтерфейс колекції. Це означає, що кожна колекція матиме методи, декларовані в інтерфейсі колекції.
Деякі з методів інтерфейсу колекції наведені нижче.
Не | Метод-прототип | Опис |
---|---|---|
7 | типове значення за замовчуванням removeIf (фільтр предикатів) | Вилучіть із колекції всі елементи, які задовольняють даному предикатному фільтру. |
1 | загальнодоступний розмір int () | Повертає кількість елементів у даній колекції. |
два | public void clear () | Очищає колекцію, видаляючи всі елементи з колекції. |
3 | загальнодоступне логічне додавання (E e) | Вставляє елемент e у колекцію. |
4 | public booleanaddAll (Колекція c) | Вставте всі елементи колекції, подані c, у колекцію. |
5 | публічне логічне видалення (елемент об'єкта) | Видалити елемент, заданий елементом ‘element’, з колекції. |
6 | public boolean removeAll (Collectionc) | Вилучіть колекцію c із колекції. |
8 | public booleanretainAll (Колекція c) | Видалити з колекції всі елементи, крім тих, що знаходяться у вказаній колекції c. |
9 | публічний ітератор ітератора () | Повернути ітератор для колекції. |
10 | public Object () toArray () | Перетворити колекцію в масив. |
одинадцять | public T () toArray (T () a) | Перетворити колекцію в масив із вказаним типом повернення. |
12 | відкритий логічний isEmpty () | Повернути, якщо колекція порожня чи ні. |
13 | public логічне значення містить (елемент об'єкта) | Перевірте, чи містить колекція даний елемент (операція пошуку). |
14 | public booleancontainsAll (Collectionc) | Перевірте, чи містить колекція в ній вказану колекцію c. |
п’ятнадцять | Сплітератор за замовчуванням () | Повертає сплітератор за вказаною колекцією. |
16 | public booleanequals (елемент об’єкта) | Використовується для узгодження двох колекцій. |
17 | стандартний потік паралельний потік () | Повертає паралельний потік, використовуючи колекцію як джерело. |
18 | за замовчуванням Streamstream () | Повертає послідовний потік, використовуючи колекцію як джерело. |
19 | public int hashCode () | Повертає числовий хеш-код колекції. |
Ітерабельний інтерфейс
Інтерфейс Iterable - це також базовий інтерфейс фреймворку колекції. Інтерфейс Collection, який є батьківським інтерфейсом для всіх інших класів, розширює інтерфейс Iterable. Отже, усі класи реалізують інтерфейс колекції, а також інтерфейс Iterable.
Інтерфейс Iterable має лише один ітератор методу (), який повертає ітератор (), який ви можете використовувати для ітерації над елементами типу T.
Iterator iterator ()
Інтерфейс ітератора
Інтерфейс Iterator забезпечує можливість перебору елементів у прямому напрямку.
Нижче наведено методи, які підтримує цей інтерфейс.
Не | Метод-прототип | Опис |
---|---|---|
1 | public Object next () | Спочатку повертає елемент, а потім переміщує курсор, щоб вказувати на наступний елемент. |
два | public логічний hasNext () | Перевіряє, чи містить ітератор більше елементів. |
3 | public void remove () | Видаляє елемент, який в кінцевому підсумку повертається ітератором. |
Інтерфейс списку
Інтерфейс списку успадковує інтерфейс колекції. Інтерфейс списку містить структури даних, які використовуються для зберігання впорядкованих даних або збору об'єктів. Ці структури даних мають тип списку. Ці структури даних, що реалізують інтерфейс списку, можуть мати або не мати повторюваних значень.
Інтерфейс списку містить методи, які використовуються для доступу, вставки або видалення елементів із об'єктів списку.
Різні класи, що реалізують інтерфейс List, такі:
запити oracle sql інтерв’ю запитання та відповіді для досвідчених pdf
- ArrayList
- LinkedList
- Вектор
- Стек
Ми коротко обговоримо кожен із цих класів. Наші наступні теми матимуть детальну дискусію щодо кожного з каркасних класів колекції.
# 1) ArrayList
ArrayList - це найпростіша реалізація інтерфейсу List. ArrayList зберігає порядок вставки, і він не синхронізується.
Загальне визначення структури даних ArrayList (Collection) є таким:
List list1= new ArrayList ();
Після того, як список визначено, ви можете використовувати метод «додати», щоб додати елементи. Зверніть увагу, що внутрішньо ArrayList використовував механізм динамічного масиву.
Перегляньте наступні приклади, що створюють колекцію кольорів ArrayList.
import java.util.*; class Main { public static void main(String args()) { //Creating arraylist of String objects ArrayList color_list=new ArrayList(); //populate the arraylist with add method color_list.add('Red'); color_list.add('Green'); color_list.add('Blue'); color_list.add('Cyan'); color_list.add('Magenta'); color_list.add('Yellow'); //Traverse the list through Iterator Iterator itr=color_list.iterator(); System.out.println('The contents of the arraylist are:'); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Вихід:
У наведеній вище програмі показано демонстрацію колекції ArrayList. Ми додаємо значення кольорів до колекції, а потім обводимо колекцію, щоб відображати окремі значення в колекції за допомогою ітератора.
# 2) LinkedList
Колекція LinkedList внутрішньо використовує подвійний механізм списку для зберігання елементів. Він може містити повторювані елементи. Операції збору LinkedList відбуваються швидше, оскільки переміщення елементів не потрібно.
Загальне визначення створення пов'язаного списку є таким:
List list2 = new LinkedList ();
Наступна програма демонструє зв’язаний набір списків імен номерів .
import java.util.*; class Main { public static void main(String args()) { //linked list of String objects LinkedList linkedlist_num=new LinkedList(); linkedlist_num.add('one'); linkedlist_num.add('two'); linkedlist_num.add('three'); linkedlist_num.add('four'); linkedlist_num.add('five'); //iterate over the linked list to display contents Iterator itr=linkedlist_num.iterator(); System.out.println('The contents of the linked list are:'); while(itr.hasNext()) { System.out.println(itr.next()); } } }
Вихід:
Таким чином, ми створюємо зв’язаний список, а потім додаємо до нього елементи за допомогою методу ‘add’. Потім за допомогою ітератора ми обходимо зв’язаний список і відображаємо кожен елемент.
# 3) Вектор
Vector схожий на ArrayList і використовує динамічний масив для зберігання таких елементів, як ArrayList. Але вектор підтримує безліч незалежних методів, крім колекції, що робить кращим вибором бажану колекцію.
Загальне визначення для векторної колекції:
List list3 = new Vector();
Зверніть увагу, що хоча vector та ArrayList використовують один і той же механізм динамічних масивів, елементи вектора синхронізуються.
Наведена нижче програма Java демонструє використання векторів у рамках колекції .
import java.util.*; public class Main { public static void main(String args()) { Vector subject_vector=new Vector(); subject_vector.add('English'); subject_vector.add('Hindi'); subject_vector.add('Maths'); subject_vector.add('Science'); Iterator itr=subject_vector.iterator(); System.out.println('Vector contents:'); while(itr.hasNext()) { System.out.println(itr.next()); } } }
Вихід:
У цій програмі ми визначили векторну колекцію, що складається з предметів. Ми додаємо різні теми, а потім використовуємо ітератор для виведення елементів.
# 4) Стек
Структура даних стека реалізує спосіб вставлення елементів в останню чергу (LIFO). Стек є підкласом вектора класу (зверніться до діаграми ієрархії колекцій вище). Окрім власних методів, колекція стеків також підтримує методи векторного збору.
Загальне визначення колекції стеків:
List list4 = new Stack();
Наступна програма реалізує колекцію стеків .
import java.util.*; public class Main { public static void main(String args()) { Stack even_stack = new Stack (); even_stack.push(2); even_stack.push(4); even_stack.push(6); even_stack.push(8); even_stack.push(10); System.out.println('The element removed from stack: ' + even_stack.pop()); Iterator itr=even_stack.iterator(); System.out.println('The contents of the stack are:'); while(itr.hasNext()) { System.out.print(itr.next() + ' '); } } }
Вихід:
Як ви можете бачити у наведеній вище реалізації, нові елементи додаються в стек за допомогою «Штовхати» операції. Стек має єдину точку входу, яка називається «Верх стека», і елементи переміщуються на стек у верхній частині. Таким чином, останній доданий елемент знаходиться у верхній частині стека.
Як і додавання, елементи також видаляються з одного кінця, тобто верхньої частини стека. Для видалення елементів використовується операція «спливаюче». Таким чином, якщо ви викликаєте pop (), елемент у верхній частині стека буде видалений.
У висновку вище ми вставляємо елемент 2, 4, 6,8,10, а потім викликаємо pop () так, щоб 10 було видалено.
Інтерфейс черги
Колекції, отримані з інтерфейсу черги, відповідають порядку першого в першому (FIFO). Елементи вставляються з одного кінця, а виймаються з іншого кінця. Отже, першим введеним елементом є той елемент, який видаляється першим.
Нижче наведені колекції, які підтримують інтерфейс запиту.
- PriorityQueue
- та інтерфейс
- ArrayDeque
Давайте коротко обговоримо кожен із них.
# 1) PriorityQueue
У колекції PriorityQueue елементи, що зберігаються, обробляються на основі їх пріоритетів. Ви не можете зберігати нульові значення в черзі пріоритетів.
Загальне визначення черги пріоритетів таке:
Queue q1 = new PriorityQueue();
Наведена нижче програма реалізує чергу пріоритетів.
import java.util.*; public class Main { public static void main(String args()) { PriorityQueue color_queue=new PriorityQueue(); color_queue.add('red'); color_queue.add('green'); color_queue.add('blue'); color_queue.add('cyan'); color_queue.add('magenta'); color_queue.add('yellow'); System.out.println('Priority Queue elements:'); System.out.println('head:'+color_queue.peek()); System.out.println('Other elements in Priority Queue:'); Iterator itr=color_queue.iterator(); while(itr.hasNext()) { System.out.print(itr.next() + ' '); } System.out.println('
'); color_queue.remove(); System.out.println('After removing element, new head:'+color_queue.element()); System.out.println('
'); color_queue.poll(); System.out.println('After removing another element, Priority Queue :'); Iterator itr2=color_queue.iterator(); while(itr2.hasNext()) { System.out.print(itr2.next() + ' '); } } }
Вихід:
Ще раз використовуємо кольори як елементи черги пріоритетів. У наведеній вище програмі ми використовували методи add і remove для додавання елементів до черги та видалення елементів відповідно. Ми використовуємо метод peek (), який повертає елемент, на який він вказує в черзі пріоритетів.
Нарешті, за допомогою ітератора відображаються елементи черги пріоритетів.
# 2) сенсорний інтерфейс
Deque або «подвійна черга» - це структура даних, яка дозволяє додавати та видаляти елементи з обох кінців. Інтерфейс deque у рамках колекції Java, який розширює інтерфейс черги.
Він забезпечує функціональність deque і має клас, який успадковує від нього ArrayDeque.
# 3) ArrayDeque
ArrayDeque реалізує інтерфейс deque.
Загальне визначення ArrayDeque є таким:
Deque d = new ArrayDeque();
ArrayDeque дозволяє використовувати функціонал Deque. На відміну від інших колекцій, таких як ArrayList або стек, ArrayDeque не має обмежень щодо своєї ємності.
У наступному прикладі показано реалізацію ArrayDeque.
import java.util.*; public class Main { public static void main(String() args) { //Creating Deque and adding elements Deque deque = new ArrayDeque (); deque.add(10); deque.add(20); deque.add(30); System.out.println('Deque Elements:'); //Traversing elements for (Integer num : deque) { System.out.println(num); } } }
Вихід:
У наведеній вище програмі ми визначаємо колекцію ArrayDeque типу integer і додаємо до неї цілочисельні елементи за допомогою методу add. Потім колекція обходить за допомогою конструкції for.
Встановити інтерфейс
Інтерфейс набору є частиною пакету java.util і поширюється від інтерфейсу колекції. Set - це структура, яка не дозволяє колекції мати повторювані значення, а також більше одного нульового значення.
Наступні класи реалізують заданий інтерфейс.
- HashSet
- LinkedHashSet
- TreeSet
# 1) HashSet
Колекція HashSet, яка реалізує інтерфейс Set, має в собі різні значення. Ця колекція використовує техніку хешування для зберігання елементів і використовує хеш-таблицю для зберігання елементів.
Т Загальне визначення колекції HashSet показано нижче.
Set s1 = new HashSet();
Ми запропонували реалізацію HashSet у наступній програмі.
import java.util.*; public class Main { public static void main(String args()) { //Create HashSet set_subjects HashSet set_subjects=new HashSet(); System.out.println('Elements in the given hashsetset_subjects are:'); set_subjects.add('Maths'); set_subjects.add('Computers'); set_subjects.add('English'); set_subjects.add('French'); //Traverse the hashset Iterator itr=set_subjects.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }
Вихід:
У наведеній вище програмі ми створюємо колекцію предметів HashSet, а потім обходимо її за допомогою ітератора для відображення елементів у колекції.
# 2) LinkedHashSet
LinkedHashSet реалізує заданий інтерфейс і розширює HashSet (посилання на ієрархію колекції). LinkedHashSet - це зв’язане представлення списку набору інтерфейсів. LinkedHashSet містить унікальні елементи, але допускає нульові значення.
Загальне визначення LinkedHashSet наведено нижче.
Set s2 = new LinkedHashSet();
Реалізація для LinkedHashSet наведена нижче.
import java.util.*; public class Main { public static void main(String args()) { LinkedHashSet set_subjects=new LinkedHashSet(); System.out.println('Elements in the LinkedHashSet set_subjects:'); set_subjects.add('Maths'); set_subjects.add('Computers'); set_subjects.add('English'); set_subjects.add('Sanskrit'); Iterator itr=set_subjects.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }
Вихід:
Ще раз ми використовуємо назви книг для створення Linkedhashset. Як видно з результату, порядок додавання підтримується linkedHashSet.
Інтерфейс SortedSet
Інтерфейс SortedSet дозволяє повністю впорядкувати елементи. Він містить методи, що забезпечують природне впорядкування елементів. Елементи колекції, що реалізують інтерфейс SortedSet, розташовані в порядку збільшення.
Клас TreeSet - один із прикладів, що реалізує інтерфейс SortedSet.
Набір дерев
Загальне визначення Treeset є таким:
Set s3 = new TreeSet();
TreeSet реалізує інтерфейс SortedSet і містить унікальні елементи. Зберігання та пошук відбувається досить швидко, а потім елементи розташовуються у порядку зростання.
import java.util.*; public class Main{ public static void main(String args()) { //create a treeset of integers TreeSet set_oddnums=new TreeSet (); set_oddnums.add(1); set_oddnums.add(3); set_oddnums.add(5); set_oddnums.add(7); set_oddnums.add(9); System.out.println('Elements in TreeSet are:'); //traverse the treeset using iterator Iterator itr=set_oddnums.iterator(); while(itr.hasNext()) { System.out.print(itr.next() + ' '); } } }
Вихід:
У наведеній вище програмі ми створили та додали непарні числа до колекції за допомогою методів add. Потім за допомогою ітератора ми виводимо елементи в колекції.
Переваги фреймворку Java Collections
- Скорочене програмування: Фреймворк Collections поставляється з усіма інтерфейсами та класами, що містять методи, що дозволяють програмістам писати ефективну програму. Таким чином, програмісту не потрібно зосереджуватись на занадто великому програмуванні.
- Послідовні методи та API: Усі класи мають загальні методи, які діють на дані. Ці API є послідовними протягом усіх класів, і програмісту не потрібно турбуватися про наявність забагато різних методів для кожного класу.
- Збільшення швидкості та точності: Ви можете писати високоефективні програми, використовуючи фреймворк колекцій, а також швидші та точніші програми, оскільки фреймворк колекції забезпечує повну функціональність для реалізації структур даних та колекцій.
- Сприяє повторному використанню програмного забезпечення: Структури даних та алгоритми фреймворку колекції Java багаторазові.
- Сумісність між не пов’язаними API: API колекції дозволяють взаємодіяти навіть серед не пов’язаних API.
- Менше зусиль для розробки нових API: Програмісти можуть використовувати стандартні API колекції та розробляти нові API на основі цього. Їм не потрібно боротися, щоб писати нові API.
Часті запитання
# 1) Для чого використовується фреймворк колекції в Java?
Відповідь: Структура колекції пропонує розфасовані алгоритми, інтерфейси та класи, які дозволяють програмістам писати високоефективні програми, які можуть зберігати та обробляти дані.
# 2) Чому Collection - це фреймворк?
Відповідь: Фреймворк - це багаторазова колекція класів, інтерфейсів та алгоритмів. Фреймворк колекції також являє собою багаторазову колекцію класів структури даних та алгоритмів, що працюють на цих класах.
# 3) Що таке API Java Collections у Java?
Відповідь: API колекцій Java надає інтерфейси та класи, які можна розширити та реалізувати, щоб використовувати структури даних, що є нічим іншим, як колекціями.
# 4) У чому різниця між колекцією та колекціями в Java?
Відповідь: Колекція - це базовий інтерфейс у рамках колекції, тоді як „колекції” - це клас. Обидва вони є частиною пакету java.util.
**** Детальніше та приклади Framework Java Collections: ****
Порівняння між списком, набором та чергою:
Список | Встановити | Черга |
---|---|---|
Порядок вставки зберігається | Порядок вставки не підтримується в наборі хеш-символів | Порядок вставки зберігається. |
Може містити повторювані елементи | Не може містити повторювані елементи | Може містити повторювані елементи. |
Вставлення та видалення масиву можна зробити для будь-якого індексу. | Видаліть вказаний елемент. | Вискакувати можна лише останній вставлений елемент. Крім того, вставка елементів відбувається в кінці. |
Клас списку масивів
У Array виділення пам'яті виправлено. Але в ArrayList пам’ять може виділятися динамічно. Цей клас ArrayList підтримує порядок вставки, і ви можете вставити повторювані елементи.
різниця в c і c ++
Демо-програма для списку масивів:
public class ArrayListDemo { public static void main(String() args) { ArrayList li = new ArrayList (); li.add(1); li.add(2); li.add(3); li.remove(0); for (Integer temp : li) { System.out.println(temp); } System.out.println('=========='); ArrayList l = new ArrayList(); l.add('text1'); l.add('text2'); l.add('text3'); for (String temp : l) { System.out.println(temp); } System.out.println('=========='); ArrayList al=new ArrayList(); al.add(1); al.add(2); al.forEach((a)->;System.out.println(a)); } }
Клас LinkedList
Структура даних зв’язаного списку містить вузли, і цей вузол буде містити дві частини:
- Дані
- Посилання на наступний елемент
Перший вузол не є окремим вузлом. Він містить лише посилання і називається головкою. Останній вузол є нульовим.
Демо-програма:
public class LinkedListDemo { public static void main(String() args) { LinkedList list =new LinkedList(); list.add(22); list.add(44); list.add(46); list.add(46); list.add(46); for(Integer temp:list) { System.out.println(temp); } Iterator it =list.iterator(); while(it.hasNext()) { System.out.println(it.next()); } System.out.println('=========='); for (int i=0;i 
Черга
Черга - це структура першого виходу (FIFO). Якщо ви викликаєте метод видалення, завжди перший вставлений елемент буде видалений із черги. Отже, Черга використовується у додатку реального часу, де дані потрібно отримувати у вставленому порядку.
Приклад програми:
public class QueueDemo { public static void main(String() args) { PriorityQueue pq=new PriorityQueue(); pq.add(1); pq.add(2); pq.add(3); pq.add(4); pq.add(5); pq.add(6); pq.add(7); for(int temp : pq) { System.out.println(temp); } pq.remove(); System.out.println('queue after removing a element'); System.out.println(pq); } }

Встановити
Колекція наборів не дозволить повторювані елементи. Ви можете використовувати встановлену структуру даних, коли ви хочете обробляти збір даних без дублювання та коли немає необхідності підтримувати порядок вставки.
Демо-програма:
public class demohashset { public static void main (String() args){ HashSet hs=new HashSet(); hs.add(23); hs.add(24); hs.add(25); hs.add(26); hs.add(27); hs.add(28); hs.add(293); hs.add(203); hs.add(263); hs.add(243); hs.add(243); (int temp:hs) { System.out.println(temp); } hs.remove(24); hs.remove(23); System.out.println('==============='); System.out.println('after removing a element ::::'); System.out.println('==============='); hs.forEach((temp)->System.out.println(temp)); ; } }

Інтерфейс MAP
- Коли ви хочете обробити збір елементів за допомогою пари ключ і значення, тоді ви можете використовувати структуру даних карти, оскільки карта є об’єктом, який може зіставити ключі зі значеннями.
- Карта не може містити дублікатів ключів.
- Важливими реалізаціями карти є HashMap, Treemap, LinkedHashMap, HashTable.
Різниця між HashMap, Treemap, LinkedHashMap і HashTable:
HashMap TreeMap LinkedHashmap HashTable Допускаються нульові ключі та значення Допускаються лише нульові значення. Допускаються нульові ключі та значення. Це не дозволить нульові ключі та значення. Не синхронізовано Не синхронізовано Не синхронізовано синхронізовані Немає гарантій щодо підтримки порядку в ітерації Сортування здійснюватиметься за природним порядком. Порядок вставки буде збережено Порядок вставки не підтримується.
Демо-програма:
public class HashMapDemo { public static void main(String() args) { HashMap m=new HashMap(); m.put(1, 'one'); m.put(2, 'two'); m.put(3, 'three'); m.put(4, 'four'); m.put(null, 'one'); m.put(null, null); System.out.println(m); TreeMap tm =new TreeMap(); tm.put('R', 'red'); tm.put('B', null); tm.put('G', 'green'); System.out.println(tm); Hashtable ht =new Hashtable(); ht.put(1, 'one'); ht.put(2, 'two'); ht.put(3, 'three'); ht.put(4, 'four'); System.out.println(ht); } }

Ключові моменти, на які слід звернути увагу:
- Інтерфейси списку, черги, набору розширюють інтерфейс колекції, і цей інтерфейс колекції має загальні методи, такі як додавання, видалення тощо.
- Порядок вставки зберігається у списку, і набір не може містити повторюваних елементів. Черга - перша у структурі даних 'Перший вихід'.
- Карта буде містити пари ключів і значень. HashMap, Treemap, Hashtable, Linked HashMap - важлива реалізація інтерфейсу карти.
Висновок
Цей підручник дав нам вступ до Framework Java Collections. Ми коротко торкнулись усіх класів та інтерфейсів, які є частиною колекції Java.
У наступних підручниках цієї серії ми детально дізнаємось про кожен із цих класів та інтерфейсів.
Ви можете дізнатись більше про роздуми в JAVA у нашому майбутньому уроці !!!
НАЗАД Підручник | НАСТУПНИЙ підручник
Рекомендована література
- Підручник з роздумів про Java з прикладами
- Поглиблені підручники Eclipse для початківців
- Підручник з Java SWING: Контейнер, компоненти та обробка подій
- Підручник JAVA для початківців: 100+ практичних відео-підручників Java
- Модифікатори доступу в Java - Підручник із прикладами
- Рядок Java із підручником для буфера рядків та побудови рядків
- Вступ до мови програмування Java - Підручник з відео
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver