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

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

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

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

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

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

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

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

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

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

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

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  

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

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

Метод

Опис

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