logo

Интерфејс реда у Јави

Интерфејс чекања је део јава.утил паковање и продужава Интерфејс за прикупљање . ИТ чува и обрађује податке у налогу где се елементи додају на задњој страни и уклањају се са предње стране.

Кључне карактеристике

  • ФИФО налог: Елементи се обрађују редоследом којим су убачени (прво у првом реду).
  • Нема насумичног приступа: За разлику од елемената листа не може се директно приступити индексом.
  • Више варијанти: Садржи приоритетеуе ДЕКУЕ АрраиДекуе и Лингедлист имплементације.
  • Два сета метода: Верзије бацања и изузетака (додајте уклањање елемената) и сигурне верзије (понудите анкете ПЕЕК).

Изјава Јава Рекуеуе интерфејса

Интерфејс за ред се проглашава:

Куеуе јавни интерфејс продужава наплату



Не можемо директно умањити ред у реду јер је то интерфејс. Овде можемо да користимо класу попут повезане листе или приоритете који имплементира овај интерфејс.

РедакКуеуе = Нови повезани лист();

иеармонтх

Сада ћемо прво да прођемо кроз једноставан пример, тада ћемо дубоко заронити у чланак.

Пример: Основни ред коришћењем ЛингедЛист-а

Java
import 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: Овај пример показује операције удварања реда.

Java
import 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 :

Java
import 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 Лингедлист

Лингедлист је линеарна структура података у којој се елементи чувају као засебни објекти који садрже податке и везу до следећег елемента. Елементи су повезани помоћу показивача који се не чувају у непрекидној меморији. Ево како можемо да створимо ред у ред коришћењем ове класе.

Пример:

Java
import 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. Додавање елемената

Да бисте додали елемент у ред, можемо да користимо Додај () Метода . Налог за уметање се не задржава у приоритетууеуе. Елементи се чувају на основу приоритетног налога који се подразумевано узлаже. 

Пример:

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(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. Итерајући у ред

Постоје више начина да се разреше кроз ред. Најпознатији начин претвара се ред на низ и прелазећи помоћу коришћења за петљу . Ред чекања је такође уграђен итератор који се може користити за разређивање цема. 

Пример:

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');  Iterator iterator = pq.iterator();  while (iterator.hasNext()) {  System.out.print(iterator.next() + ' ');  }  } } 

Излаз
For Geeks Geeks 

Методе интерфејса у реду

Ево листе пуних метода за ред чекањаИнтерфејс у ​​Јави, заједно са свим методама које наслеђује из колекцијеи научно.

Метод

Опис

Боолеан Додај (Е Е)Уметнути елемент; баца изузетак ако је пун.
Боолеан понуда (е е)Уметнути елемент; Враћа лажно ако је пуна.
Е уклони ()Уклања главу; баца изузетак ако је празно.
Е анкета ()Уклања главу; Враћа нулл ако је празно.
И елемент ()Дохваћа главу; баца изузетак ако је празно.
Е Пеек ()Дохваћа главу; Враћа нулл ако је празно.
Боолеан АддАлл (колекцијац)Додаје све елементе из друге колекције.
воид цлеар ()Уклања све елементе.
Боолеан садржи (објект о)Провера да ли постоји елемент.
Боолеан садржи (колекцијац)Провера да ли постоје сви елементи.
Боолеан једнак (објект о)Упоређује се са другом колекцијом.
ИНТ ХАСХЦОДЕ ()Враћа Хасх код.
Боолеан Исеемби ()Провера да ли је колекција празна.
ИтераторИтератор ()Враћа итератор за елементе.
Боолеан Ремове (објект О)Уклања одређени елемент.
Боолеан Ремовеалл (Колекцијац)Уклања све одговарајуће елементе.
Боолеан Ретаиналл (колекцијац)Чува само одређене елементе.
Величина инт ()Враћа број елемената.
Објект [] тоарраи ()Враћа елементе као низ.
Т [] тоарраи (т [] а)Враћа елементе као укупан низ.
Подразумевано празнина протока (потрошач)Акција)Врши акцију за сваки елемент.
Подразумевано празнина протока (потрошач)Акција)Врши акцију за сваки елемент.
Подразумевани спетаторСплитатор ()Враћа оплер.
Подразумевани стреамСтреам ()Враћа секвенцијални ток.
Подразумевани стреамПараллелстстреам ()Враћа паралелни ток.