Интерфејс чекања је део јава.утил паковање и продужава Интерфејс за прикупљање . ИТ чува и обрађује податке у налогу где се елементи додају на задњој страни и уклањају се са предње стране.
Кључне карактеристике
- ФИФО налог: Елементи се обрађују редоследом којим су убачени (прво у првом реду).
- Нема насумичног приступа: За разлику од елемената листа не може се директно приступити индексом.
- Више варијанти: Садржи приоритетеуе ДЕКУЕ АрраиДекуе и Лингедлист имплементације.
- Два сета метода: Верзије бацања и изузетака (додајте уклањање елемената) и сигурне верзије (понудите анкете ПЕЕК).
Изјава Јава Рекуеуе интерфејса
Интерфејс за ред се проглашава:
Куеуе јавни интерфејс продужава наплату
Не можемо директно умањити ред у реду јер је то интерфејс. Овде можемо да користимо класу попут повезане листе или приоритете који имплементира овај интерфејс.
Редак
Куеуе = Нови повезани лист (); иеармонтх
Сада ћемо прво да прођемо кроз једноставан пример, тада ћемо дубоко заронити у чланак.
Пример: Основни ред коришћењем ЛингедЛист-а
Javaimport java.util.LinkedList; import java.util.Queue; public class Geeks { public static void main(String args[]) { // Create a Queue of Integers using LinkedList Queue<Integer> q = new LinkedList<>(); System.out.println('Queue elements: ' + q); } }
Излаз
Queue elements: []
Бити интерфејс Ред је потребан конкретан разред за декларацију и најчешћи часови су Прулитикуеуе и ЛингедЛист у Јави. Имајте на уму да ниједан од ових имплементација није навој. ПриоритетБлоцкингКуеуеуе је једна алтернативна имплементација ако је потребна примена навоја.
стринг формат
Стварање објеката реда
Ред чекања је интерфејс, па се објекти не могу створити типама типа. Увек нам је потребна класа која проширује ову листу како би се створио предмет. И и након увођења Генерицс У Јави 1.5 могуће је ограничити врсту објекта који се може чувати у реду. Овај ревизор безбедан типа може се дефинисати као:
Java// Obj is the type of the object to be stored in Queue Queue<Obj> queue = new PriorityQueue<Obj> ();
Уобичајене методе
Интерфејс за ред чекања пружа неколико метода за додавање уклањања и прегледа елемената у ред. Ево неких од најчешће коришћених метода:
- Додај (елемент) : Додаје елемент за задњи ред чекања. Ако је ред цео, баца изузетак.
- Понуда (елемент): Додаје елемент за задњи део реда чекања. Ако је ред пун пуни, враћа лажно.
- уклони () : Уклања и враћа елемент на предњој страни реда. Ако је ред празан, баца изузетак.
- Анкета (): Уклања и враћа елемент на предњој страни реда. Ако је ред празан, враћа га нулл.
- Елемент (): Враћа елемент на предњој страни реда без уклањања. Ако је ред празан, баца изузетак.
- Пеек () : Враћа елемент на предњој страни реда без уклањања. Ако је ред празан, враћа га нулл.
Пример 1: Овај пример показује операције удварања реда.
Javaimport java.util.LinkedList; import java.util.Queue; public class Geeks { public static void main(String[] args) { Queue<String> queue = new LinkedList<>(); // add elements to the queue queue.add('apple'); queue.add('banana'); queue.add('cherry'); System.out.println('Queue: ' + queue); // remove the element at the front of the queue String front = queue.remove(); System.out.println('Removed element: ' + front); // print the updated queue System.out.println('Queue after removal: ' + queue); // add another element to the queue queue.add('date'); // peek at the element at the front of the queue String peeked = queue.peek(); System.out.println('Peeked element: ' + peeked); // print the updated queue System.out.println('Queue after peek: ' + queue); } }
Излаз
Queue: [apple banana cherry] Removed element: apple Queue after removal: [banana cherry] Peeked element: banana Queue after peek: [banana cherry date]
Пример 2 :
Javaimport java.util.LinkedList; import java.util.Queue; public class Geeks { public static void main(String[] args){ Queue<Integer> q = new LinkedList<>(); // Adds elements {0 1 2 3 4} to the queue for (int i = 0; i < 5; i++) q.add(i); // Display contents of the queue System.out.println('Elements of queue: ' + q); // To remove the head of queue int removedele = q.remove(); System.out.println('Removed element:'+ removedele); System.out.println(q); // To view the head of queue int head = q.peek(); System.out.println('Head of queue:'+ head); // Rest all methods of collection interface like size and contains can be used with this implementation. int size = q.size(); System.out.println('Size of queue:' + size); } }
Излаз
Elements of queue: [0 1 2 3 4] Removed element:0 [1 2 3 4] Head of queue:1 Size of queue:4
Часови који имплементирају интерфејс за ред чекања
1. приоритетниеуеуе
Приоритетни час омогућава америчким елементима процеса на основу њиховог приоритета уместо уобичајеног ФИФО реда нормалног реда. Корисно је када се елементи морају руковати у приоритетном редоследу. Ево како можемо да створимо ред у ред коришћењем ове класе.
Пример:
схилпа схеттиJava
import java.util.*; class Geeks { public static void main(String args[]){ // Creating empty priority queue Queue<Integer> pq = new PriorityQueue<Integer>(); // Adding items to the pQueue using add() pq.add(10); pq.add(20); pq.add(15); // Printing the top element of the PriorityQueue System.out.println(pq.peek()); // Printing the top element and removing it the PriorityQueue container System.out.println(pq.poll()); // Printing the top element again System.out.println(pq.peek()); } }
Излаз
10 10 15
2 Лингедлист
Лингедлист је линеарна структура података у којој се елементи чувају као засебни објекти који садрже податке и везу до следећег елемента. Елементи су повезани помоћу показивача који се не чувају у непрекидној меморији. Ево како можемо да створимо ред у ред коришћењем ове класе.
Пример:
Javaimport java.util.*; class Geeks { public static void main(String args[]) { // Creating empty LinkedList Queue<Integer> ll = new LinkedList<Integer>(); // Adding items to the ll using add() ll.add(10); ll.add(20); ll.add(15); // Printing the top element of the LinkedList System.out.println(ll.peek()); // Printing the top element and removing it from the LinkedList container System.out.println(ll.poll()); // Printing the top element again System.out.println(ll.peek()); } }
Излаз
10 10 20
3. приоритетБлоцкингКуекуеуе
ПриоритетБлоцкингВеуе је навој-безбедан неограничен ред за блокирање који наређује елементе попут приоритета и подржава блокирање проналажења. Пошто је то неограничен додавање елемената и даље може да пропадне ако меморија истекне. Ево како да креирате ред у ред помоћу ове класе.
Пример:
јава инт као стрингJava
import java.util.concurrent.PriorityBlockingQueue; import java.util.*; class Geeks { public static void main(String args[]) { // Creating empty priority blocking queue Queue<Integer> pbq = new PriorityBlockingQueue<Integer>(); // Adding items to the pbq using add() pbq.add(10); pbq.add(20); pbq.add(15); // Printing the top element of the PriorityBlockingQueue System.out.println(pbq.peek()); // Printing the top element and removing it from the PriorityBlockingQueue System.out.println(pbq.poll()); // Printing the top element again System.out.println(pbq.peek()); } }
Излаз
10 10 15
Различите операције на интерфејсу за ред користећи приоритетеуе класе
1. Додавање елемената
Да бисте додали елемент у ред, можемо да користимо Додај () Метода . Налог за уметање се не задржава у приоритетууеуе. Елементи се чувају на основу приоритетног налога који се подразумевано узлаже.
Пример:
Javaimport java.util.*; public class Geeks { public static void main(String args[]) { Queue<String> pq = new PriorityQueue<>(); pq.add('Geeks'); pq.add('For'); pq.add('Geeks'); System.out.println(pq); } }
Излаз
[For Geeks Geeks]
2 Уклањање елемената
Да бисте уклонили елемент из реда чекања, можемо да користимо Уклони () метода. Ако постоји више објеката, тада се уклања прва појава објекта. Тхе Анкета () Метода Такође се користи за уклањање главе и врати га.
Пример:
стс преузимањеJava
import java.util.*; public class Geeks { public static void main(String args[]) { Queue<String> pq = new PriorityQueue<>(); pq.add('Geeks'); pq.add('For'); pq.add('Geeks'); System.out.println('Initial Queue: ' + pq); pq.remove('Geeks'); System.out.println('After Remove: ' + pq); System.out.println('Poll Method: ' + pq.poll()); System.out.println('Final Queue: ' + pq); } }
Излаз
Initial Queue: [For Geeks Geeks] After Remove: [For Geeks] Poll Method: For Final Queue: [Geeks]
3. Итерајући у ред
Постоје више начина да се разреше кроз ред. Најпознатији начин претвара се ред на низ и прелазећи помоћу коришћења за петљу . Ред чекања је такође уграђен итератор који се може користити за разређивање цема.
Пример:
Javaimport java.util.*; public class Geeks { public static void main(String args[]) { Queue<String> pq = new PriorityQueue<>(); pq.add('Geeks'); pq.add('For'); pq.add('Geeks'); Iterator iterator = pq.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + ' '); } } }
Излаз
For Geeks Geeks
Методе интерфејса у реду
Ево листе пуних метода за ред чекања
Метод | Опис |
|---|---|
| Боолеан Додај (Е Е) | Уметнути елемент; баца изузетак ако је пун. |
| Боолеан понуда (е е) | Уметнути елемент; Враћа лажно ако је пуна. |
| Е уклони () | Уклања главу; баца изузетак ако је празно. |
| Е анкета () | Уклања главу; Враћа нулл ако је празно. |
| И елемент () | Дохваћа главу; баца изузетак ако је празно. |
| Е Пеек () | Дохваћа главу; Враћа нулл ако је празно. |
| Боолеан АддАлл (колекција extends E>ц) | Додаје све елементе из друге колекције. |
| воид цлеар () | Уклања све елементе. |
| Боолеан садржи (објект о) | Провера да ли постоји елемент. |
| Боолеан садржи (колекција>ц) | Провера да ли постоје сви елементи. |
| Боолеан једнак (објект о) | Упоређује се са другом колекцијом. |
| ИНТ ХАСХЦОДЕ () | Враћа Хасх код. |
| Боолеан Исеемби () | Провера да ли је колекција празна. |
| Итератор | Враћа итератор за елементе. |
| Боолеан Ремове (објект О) | Уклања одређени елемент. |
| Боолеан Ремовеалл (Колекција>ц) | Уклања све одговарајуће елементе. |
| Боолеан Ретаиналл (колекција>ц) | Чува само одређене елементе. |
| Величина инт () | Враћа број елемената. |
| Објект [] тоарраи () | Враћа елементе као низ. |
| Враћа елементе као укупан низ. | |
| Подразумевано празнина протока (потрошач) super E>Акција) | Врши акцију за сваки елемент. |
| Подразумевано празнина протока (потрошач) super E>Акција) | Врши акцију за сваки елемент. |
| Подразумевани спетатор | Враћа оплер. |
| Подразумевани стреам | Враћа секвенцијални ток. |
| Подразумевани стреам | Враћа паралелни ток. |