The Колекція на Java це структура, яка забезпечує архітектуру для зберігання та керування групою об’єктів.
Колекції Java можуть виконувати всі операції, які ви виконуєте над даними, такі як пошук, сортування, вставка, маніпуляції та видалення.
Колекція Java означає окрему одиницю об’єктів. Framework Java Collection надає багато інтерфейсів (Set, List, Queue, Deque) і класів ( ArrayList , вектор, LinkedList , PriorityQueue , HashSet, LinkedHashSet, TreeSet).
Що таке колекція в Java
Колекція представляє окрему одиницю об’єктів, тобто групу.
Що таке фреймворк в Java
- Він надає готову архітектуру.
- Він являє собою набір класів та інтерфейсів.
- Це необов'язково.
Що таке структура колекції
Структура колекції представляє уніфіковану архітектуру для зберігання та керування групою об’єктів. Це має:
- Інтерфейси та їх реалізації, тобто класи
- Алгоритм
Чи ти знаєш?
- Які є два способи ітерації елементів колекції?
- Яка різниця між класами ArrayList і LinkedList у рамках колекції?
- Яка різниця між класами ArrayList і Vector у рамках колекції?
- Яка різниця між класами HashSet і HashMap у рамках колекції?
- Яка різниця між класом HashMap і Hashtable?
- Яка різниця між інтерфейсом Iterator та Enumeration у структурі колекції?
- Як ми можемо сортувати елементи об’єкта? Яка різниця між інтерфейсами Comparable і Comparator?
- Що означає метод hashcode()?
- Яка різниця між колекцією Java і колекціями Java?
Ієрархія структури колекції
Давайте подивимося на ієрархію структури Collection. The java.util пакет містить усе класи і інтерфейси для основи колекції.
Методи інтерфейсу колекції
В інтерфейсі колекції оголошено багато методів. Вони такі:
Немає. | метод | опис |
---|---|---|
1 | публічне логічне додавання (E e) | Він використовується для вставки елемента в цю колекцію. |
2 | public boolean addAll(Collection c) | Він використовується для вставки вказаних елементів колекції в колекцію, що викликається. |
3 | public boolean remove(Object element) | Він використовується для видалення елемента з колекції. |
4 | public boolean removeAll(Collection c) | Він використовується для видалення всіх елементів зазначеної колекції з колекції, що викликається. |
5 | логічне значення за замовчуванням removeIf (фільтр предикатів) | Він використовується для видалення всіх елементів колекції, які задовольняють вказаний предикат. |
6 | public boolean retainAll(Collection c) | Використовується для видалення всіх елементів викликаної колекції, крім зазначеної колекції. |
7 | public int size() | Він повертає загальну кількість елементів у колекції. |
8 | public void clear() | Він видаляє загальну кількість елементів із колекції. |
9 | public boolean містить (елемент Object) | Використовується для пошуку елемента. |
10 | public boolean containsAll(Collection c) | Використовується для пошуку вказаної колекції в колекції. |
одинадцять | публічний ітератор iterator() | Він повертає ітератор. |
12 | public Object[] toArray() | Він перетворює колекцію в масив. |
13 | public T[] toArray(T[] a) | Він перетворює колекцію в масив. Тут тип середовища виконання повернутого масиву є типом зазначеного масиву. |
14 | публічне логічне значення isEmpty() | Він перевіряє, чи колекція порожня. |
п'ятнадцять | Типовий потік parallelStream() | Він повертає, можливо, паралельний потік із колекцією як джерелом. |
16 | за замовчуванням Stream stream() | Він повертає послідовний потік із колекцією як джерелом. |
17 | за замовчуванням Spliterator spliterator() | Він генерує Spliterator над вказаними елементами в колекції. |
18 | public boolean equals (елемент Object) | Він відповідає двом колекціям. |
19 | public int hashCode() | Він повертає номер хеш-коду колекції. |
Інтерфейс ітератора
Інтерфейс ітератора надає можливість ітерації елементів лише в прямому напрямку. |
Методи інтерфейсу Iterator
В інтерфейсі Iterator є лише три методи. Вони є:
Немає. | метод | опис |
---|---|---|
1 | public boolean hasNext() | Він повертає true, якщо ітератор має більше елементів, інакше повертає false. |
2 | публічний об'єкт next() | Він повертає елемент і переміщує покажчик курсору до наступного елемента. |
3 | public void remove() | Він видаляє останні елементи, повернуті ітератором. Менше використовується. |
Ітерований інтерфейс
Ітеративний інтерфейс є кореневим інтерфейсом для всіх класів колекції. Інтерфейс Collection розширює інтерфейс Iterable, тому всі підкласи інтерфейсу Collection також реалізують інтерфейс Iterable.
Він містить лише один абстрактний метод. тобто,
Iterator iterator()
Він повертає ітератор над елементами типу T.
алгоритм сортування купи
Інтерфейс колекції
Інтерфейс колекції — це інтерфейс, який реалізований усіма класами в рамках колекції. Він оголошує методи, які матиме кожна колекція. Іншими словами, ми можемо сказати, що інтерфейс колекції створює основу, від якої залежить структура колекції.
Деякі з методів інтерфейсу Collection — Boolean add ( Object obj), Boolean addAll ( Collection c), void clear() тощо, які реалізуються всіма підкласами інтерфейсу Collection.
Інтерфейс списку
Інтерфейс списку є дочірнім інтерфейсом інтерфейсу колекції. Він блокує структуру даних типу списку, в якій ми можемо зберігати впорядковану колекцію об’єктів. Він може мати повторювані значення.
Інтерфейс списку реалізований класами ArrayList, LinkedList, Vector і Stack.
Щоб створити екземпляр інтерфейсу List, ми повинні використовувати:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Існують різні методи в інтерфейсі списку, які можна використовувати для вставки, видалення та доступу до елементів зі списку.
Нижче наведено класи, які реалізують інтерфейс List.
ArrayList
Клас ArrayList реалізує інтерфейс List. Він використовує динамічний масив для зберігання повторюваних елементів різних типів даних. Клас ArrayList підтримує порядок вставки та не є синхронізованим. До елементів, що зберігаються в класі ArrayList, можна отримати довільний доступ. Розглянемо наступний приклад.
import java.util.*; class TestJavaCollection1{ public static void main(String args[]){ ArrayList list=new ArrayList();//Creating arraylist list.add('Ravi');//Adding object in arraylist list.add('Vijay'); list.add('Ravi'); list.add('Ajay'); //Traversing list through Iterator Iterator itr=list.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Вихід:
Ravi Vijay Ravi Ajay
LinkedList
LinkedList реалізує інтерфейс Collection. Для внутрішнього зберігання елементів використовується подвійний зв’язаний список. Він може зберігати повторювані елементи. Він підтримує порядок вставки та не синхронізується. У LinkedList маніпуляції відбуваються швидко, оскільки не потрібно зміщувати.
Розглянемо наступний приклад.
import java.util.*; public class TestJavaCollection2{ public static void main(String args[]){ LinkedList al=new LinkedList(); al.add('Ravi'); al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Вихід:
Ravi Vijay Ravi Ajay
Вектор
Vector використовує динамічний масив для зберігання елементів даних. Він схожий на ArrayList. Однак він синхронізований і містить багато методів, які не є частиною структури Collection.
Розглянемо наступний приклад.
import java.util.*; public class TestJavaCollection3{ public static void main(String args[]){ Vector v=new Vector(); v.add('Ayush'); v.add('Amit'); v.add('Ashish'); v.add('Garima'); Iterator itr=v.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Вихід:
Ayush Amit Ashish Garima
Стек
Стек є підкласом вектора. Він реалізує структуру даних 'останній прийшов - перший вийшов', тобто стек. Стек містить усі методи класу Vector, а також надає його методи, такі як boolean push(), boolean peek(), boolean push(object o), які визначають його властивості.
Розглянемо наступний приклад.
import java.util.*; public class TestJavaCollection4{ public static void main(String args[]){ Stack stack = new Stack(); stack.push('Ayush'); stack.push('Garvit'); stack.push('Amit'); stack.push('Ashish'); stack.push('Garima'); stack.pop(); Iterator itr=stack.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Вихід:
Ayush Garvit Amit Ashish
Інтерфейс черги
Інтерфейс черги підтримує порядок «перший прийшов – перший вийшов». Його можна визначити як упорядкований список, який використовується для зберігання елементів, які збираються обробити. Існують різні класи, такі як PriorityQueue, Deque та ArrayDeque, які реалізують інтерфейс Queue.
Інтерфейс черги можна створити як:
Queue q1 = new PriorityQueue(); Queue q2 = new ArrayDeque();
Існують різні класи, які реалізують інтерфейс черги, деякі з них наведено нижче.
PriorityQueue
Клас PriorityQueue реалізує інтерфейс Queue. Він містить елементи або об’єкти, які мають бути оброблені за їхніми пріоритетами. PriorityQueue не дозволяє зберігати нульові значення в черзі.
Розглянемо наступний приклад.
import java.util.*; public class TestJavaCollection5{ public static void main(String args[]){ PriorityQueue queue=new PriorityQueue(); queue.add('Amit Sharma'); queue.add('Vijay Raj'); queue.add('JaiShankar'); queue.add('Raj'); System.out.println('head:'+queue.element()); System.out.println('head:'+queue.peek()); System.out.println('iterating the queue elements:'); Iterator itr=queue.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } queue.remove(); queue.poll(); System.out.println('after removing two elements:'); Iterator itr2=queue.iterator(); while(itr2.hasNext()){ System.out.println(itr2.next()); } } }
Вихід:
head:Amit Sharma head:Amit Sharma iterating the queue elements: Amit Sharma Raj JaiShankar Vijay Raj after removing two elements: Raj Vijay Raj
І інтерфейс
Інтерфейс Deque розширює інтерфейс Queue. У Deque ми можемо видаляти та додавати елементи з обох сторін. Deque означає подвійну чергу, яка дозволяє нам виконувати операції на обох кінцях.
Deque можна створити як:
Deque d = new ArrayDeque();
ArrayDeque
Клас ArrayDeque реалізує інтерфейс Deque. Це полегшує нам використання Deque. На відміну від черги, ми можемо додавати або видаляти елементи з обох кінців.
ArrayDeque швидший за ArrayList і Stack і не має обмежень по місткості.
Розглянемо наступний приклад.
import java.util.*; public class TestJavaCollection6{ public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Gautam'); deque.add('Karan'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } }
Вихід:
Gautam Karan Ajay
Встановити інтерфейс
Set Interface в Java присутній у пакеті java.util. Він розширює інтерфейс колекції. Він представляє невпорядкований набір елементів, який не дозволяє нам зберігати повторювані елементи. Ми можемо зберегти щонайбільше одне нульове значення в Set. Набір реалізований HashSet, LinkedHashSet і TreeSet.
Набір можна створити як:
Set s1 = new HashSet(); Set s2 = new LinkedHashSet(); Set s3 = new TreeSet();
HashSet
Клас HashSet реалізує інтерфейс Set. Він представляє колекцію, яка використовує хеш-таблицю для зберігання. Хешування використовується для зберігання елементів у HashSet. Він містить унікальні предмети.
Розглянемо наступний приклад.
import java.util.*; public class TestJavaCollection7{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Вихід:
Vijay Ravi Ajay
LinkedHashSet
Клас LinkedHashSet представляє реалізацію інтерфейсу встановлення LinkedList. Він розширює клас HashSet і реалізує інтерфейс Set. Як і HashSet, він також містить унікальні елементи. Він підтримує порядок вставки та дозволяє нульові елементи.
Розглянемо наступний приклад.
import java.util.*; public class TestJavaCollection8{ public static void main(String args[]){ LinkedHashSet set=new LinkedHashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Вихід:
Ravi Vijay Ajay
Інтерфейс SortedSet
SortedSet є альтернативою інтерфейсу Set, який забезпечує загальне впорядкування своїх елементів. Елементи SortedSet розташовані в порядку зростання (зростання). SortedSet надає додаткові методи, які перешкоджають природному впорядкуванню елементів.
SortedSet можна створити як:
SortedSet set = new TreeSet();
TreeSet
Клас Java TreeSet реалізує інтерфейс Set, який використовує дерево для зберігання. Як і HashSet, TreeSet також містить унікальні елементи. Однак час доступу та пошуку TreeSet досить швидкий. Елементи в TreeSet зберігаються в порядку зростання.
Розглянемо такий приклад:
import java.util.*; public class TestJavaCollection9{ public static void main(String args[]){ //Creating and adding elements TreeSet set=new TreeSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Вихід:
Ajay Ravi VijayЩо ми будемо вивчати в Java Collections Framework
- Клас ArrayList
- Клас LinkedList
- Інтерфейс списку
- Клас HashSet
- Клас LinkedHashSet
- Клас TreeSet
- Клас PriorityQueue
- Інтерфейс карти
- Клас HashMap
- Клас LinkedHashMap
- Клас TreeMap
- Клас хеш-таблиці
- Сортування
- Порівняний інтерфейс
- Інтерфейс компаратора
- Клас властивостей в Java