deque java deque implementation
Овај водич даје детаљно објашњење Декуе-а или „Двоструког реда чекања“ на Јави. Научићете о Декуе интерфејсу, АПИ методама, имплементацији итд.:
Декуе или „двоструки ред“ у Јави је структура података у коју можемо уметнути или обрисати елементе са оба краја. Декуе је интерфејс у Јави који припада пакету јава.утил и имплементира интерфејс јава.куеуе.
Декуе можемо применити као структуру стека (Ласт Ин, Фирст Оут) или као ред (фирст-ин-фирст-оут). Декуе је бржи од Стацк-а и / или ЛинкедЛист-а. Декуе се изговара као 'шпил' као у 'шпил карата'.
=> Овде погледајте како бисте овде видели А-З Јава туторијала за обуку.
Шта ћете научити:
Отприлике Јава
Типична колекција декуе изгледаће као што је приказано доле:
скл основна питања и одговори за интервју пдф
Декуе се углавном користи за примену структура података стека, реда или листе. Такође се може користити за примену приоритетних редова. Карактеристике опозива или историје које су углавном присутне у веб прегледачима могу се применити помоћу декуе-а.
Јава Декуе интерфејс
Дијаграм у наставку приказује хијерархију за двоструки ред или декуе. Као што је приказано на доњем дијаграму, интерфејс Декуе се протеже на интерфејс Куеуе који заузврат проширује интерфејс Цоллецтион.
Да бисмо користили декуе интерфејс у нашем програму, морамо да увозимо пакет који садржи декуе функционалност користећи изјаву о увозу као што је приказано доле.
import java.util.deque;
или
import java.util.*;
Како је декуе интерфејс, требају нам конкретне класе да бисмо применили функционалност декуе интерфејса.
Две класе у наставку примењују декуе интерфејс.
- АрраиДекуе
- ЛинкедЛист
Стога можемо створити декуе објекте користећи ове две класе како је приказано доле:
Deque numdeque = new ArrayDeque (); Deque strDeque = new LinkedList ();
Стога, када се претходно направљени готови објекти успешно креирају, они могу да користе функционалност декуе интерфејса.
Следи неколико важних тачака које треба напоменути о декуе-у:
- Интерфејс Декуе подржава променљиве низове који се могу повећавати по потреби.
- Декуе-ови низова не дозвољавају употребу нулл вредности.
- Декуе не подржава истовремени приступ са више нити.
- Декуе није заштићен од нити ако није обезбеђена спољна синхронизација.
АрраиДекуе у Јави
АрраиДекуе припада пакету јава.утил. Примењује декуе интерфејс. Класа АрраиДекуе интерно користи динамички променљив низ који расте како се повећава број елемената.
Дијаграм испод приказује хијерархију за класу АрраиДекуе:
Као што је приказано на дијаграму, класа АрраиДекуе наслеђује класу АбстрацтЦоллецтион и имплементира интерфејс Декуе.
најбољи софтвер за одржавање система за Виндовс 10
Објекат декуе можемо створити помоћу класе АрраиДекуе како је приказано доле:
Deque deque_obj = new ArrayDeque ();
и Пример
Следећи Јава програм показује једноставан пример за боље разумевање декуе-а. Овде смо користили класу АрраиДекуе за инстанцирање декуе интерфејса. Управо смо додали неке елементе у објект декуе, а затим их одштампали помоћу форЕацх петље.
import java.util.*; public class Main { public static void main(String() args) { //Creat a Deque and add elements Deque cities_deque = new ArrayDeque(); cities_deque.add('Delhi'); cities_deque.add('Mumbai'); cities_deque.add('Bangaluru'); System.out.println('Deque Contents:'); //Traverse the Deque for (String str : cities_deque) { System.out.print(str + ' '); } } }
Излаз:
Јава АПИ и МЕТОДЕ
Како интерфејс декуе имплементира интерфејс реда, он подржава све методе интерфејса реда. Поред тога, интерфејс декуе пружа следеће методе које се могу користити за обављање различитих операција са објектом декуе.
Сумирајмо ове методе у доњој табели.
Метод | Прототип методе | Опис |
---|---|---|
гетФирст | Е гетФирст () | Дохватите први елемент декуе-а без уклањања. |
додати | логички додатак (Е е) | Додаје дати елемент е у декуе (на репу) без кршења ограничења капацитета и враћа труе ако успе. Баца ИллегалСтатеЕкцептион ако нема места на декуеу. |
аддФирст | воид аддФирст (Е е) | Додаје дати елемент е на чекање без кршења ограничења капацитета. |
аддЛаст | воид аддЛаст (Е е) | Додаје елемент е последњем декуе-у без кршења ограничења капацитета. |
садржи | боолеан садржи (објекат о) | Проверава да ли декуе садржи дати елемент о. Враћа тачно ако је одговор да. |
силазниИтератор | Итератор силазноИтератор () | Ова метода враћа итератор обрнутог реда за декуе. |
елемент | Е елемент () | Враћа први елемент или главу декуе-а. Имајте на уму да не брише елемент. |
гетЛаст | Е гетЛаст () | Добија последњи елемент декуе-а без уклањања. |
итератор | Итератор итератор () | Враћа стандардни итератор преко елемената декуе-а. |
понуда | логичка понуда (Е е) | Додаје дати елемент е у декуе (као реп) без кршења ограничења капацитета. Враћа тачно на успех и нетачно на неуспех. |
офферФирст | логичка понудаФирст (Е е) | Уметните дати елемент е испред деке-а без кршења ограничења капацитета. |
офферЛаст | боолеан офферЛаст (Е е) | Уметните дати елемент е на крај шупљине без кршења ограничења капацитета. |
завирити | Е пеек () | Враћа главу декуе (првог елемента) или нулу ако је ред празан. ** не брише главу |
пеекФирст | Е пеекФирст () | Враћа први елемент у декуе-у без његовог брисања. Враћа нулу ако је декуе празан. |
пеекЛаст | Е пеекЛаст () | Дохваћа последњи елемент у декуеу без уклањања. Враћа нулу ако је декуе празан. |
анкета | Е анкета () | Брише и враћа главу декуе-а. Враћа нулу ако је декуе празан. |
поллФирст | Прва анкета () | Враћа и уклања први елемент декуе-а. Враћа нулу ако је декуе празан. |
поллЛаст | Е анкетаПоследња () | Враћа и уклања последњи елемент декуе-а. Враћа нулу ако је декуе празан. |
поп | Е поп () | Искочите елемент из стека који је представљен помоћу декуе. |
гурати | воид пусх (Е е) | Гурните дати елемент е на стек представљен користећи декуе без кршења ограничења капацитета. Враћа тачно у случају успеха или ИллегалСтатеЕкцептион ако на декуеу нема слободног простора. |
уклонити | Е уклони () | Уклоните и вратите главу шупљине. |
уклонити | логичко уклањање (објекат о) | Уклоните прву појаву датог елемента о из декуе-а. |
ремовеФирст | Е ремовеФирст () | Уклоните и вратите први елемент декуе-а. |
ремовеФирстОццурренце | боолеан ремовеФирстОццурренце (објекат о) | Уклања прву појаву датог елемента о из декуе-а. |
ремовеЛаст | Е ремовеЛаст () | Дохваћа и брише последњи елемент у декуеу. |
ремовеЛастОццурренце | боолеан ремовеЛастОццурренце (објекат о) | Брише последњу појаву датог елемента о из декуе-а. |
величина | инт величина () | Враћа величину или број елемената у декуе-у. |
И примена у Јави
Применимо сада Јава програм да демонстрирамо неке од главних декуе метода о којима је раније било речи.
У овом програму користимо декуе типа Стринг, а затим додајемо елементе у њега користећи разне методе попут адд, аддФирст, аддЛаст, пусх, оффер, офферФирст итд. Затим приказујемо декуе. Даље, дефинишемо стандардни и обрнути итератор за декуе и прелазимо кроз декуе за испис елемената.
Такође користимо и друге методе попут садржи, искакање, гурање, завиривање, анкетирање, уклањање итд.
import java.util.*; public class Main { public static void main(String() args) { //Declare Deque object Deque deque = new LinkedList(); // add elements to the queue using various methods deque.add('One'); //add () deque.addFirst('Two'); //addFirst () deque.addLast('Three'); //addLast () deque.push('Four'); //push () deque.offer('Five'); //offer () deque.offerFirst('Six'); //offerFirst () deque.offerLast('Seven'); //offerLast () System.out.println('Initial Deque:'); System.out.print(deque + ' '); // Iterate using standard iterator System.out.println('
Deque contents using Standard Iterator:'); Iterator iterator = deque.iterator(); while (iterator.hasNext()) System.out.print(' ' + iterator.next()); // Iterate using Reverse order iterator Iterator reverse = deque.descendingIterator(); System.out.println('
Deque contents using Reverse Iterator:'); while (reverse.hasNext()) System.out.print(' ' + reverse.next()); // Peek () method System.out.println('
Deque Peek:' + deque.peek()); System.out.println('
Deque,After peek:' + deque); // Pop () method System.out.println('
Deque Pop:' + deque.pop()); System.out.println('
Deque,After pop:' + deque); // contains () method System.out.println('
Deque Contains Three: ' + deque.contains('Three')); deque.removeFirst(); //removeFirst () deque.removeLast(); //removeLast () System.out.println('
Deque, after removing ' + 'first and last elements: ' + deque); } }
Излаз:
Често постављана питања
П # 1) Да ли је Јава заштићена нитима Декуе?
Одговор: АрраиДекуе није заштићен од нити. Али интерфејс БлоцкингДекуе у класи јава.утил.цонцуррент представља декуе. Овај декуе је заштићен од нити.
К # 2) Зашто је Декуе бржи од стека?
Одговор: Интерфејс АрраиДекуе који имплементира декуе интерфејс ефикасан је у меморији јер не мора да прати претходне или следеће чворове. Такође, то је промена величине која се може променити. Тако је декуе бржи од стека.
К # 3) Да ли је Декуе стог?
Одговор: Декуе је двоструки ред. Омогућава ЛИФО понашање и стога се може применити као стек иако није стек.
К # 4) Где се користи Декуе?
Одговор: Декуе се углавном користи за примену функција као што су поништавање и историја.
П # 5) Да ли је Декуе кружни?
Одговор: Да, Декуе је кружна.
Закључак
Овим је завршен наш водич о интерфејсу Декуе у Јави. Декуе интерфејс је имплементиран помоћу декуе структуре података која је колекција која може да убацује и брише елементе са оба краја.
Две класе, тј. АрраиДекуе и ЛинкедЛист, примењују декуе интерфејс. Ове класе можемо користити за примену функционалности декуе интерфејса.
=> Посетите овде за ексклузивну серију лекција за Јава тренинг.
Препоручено читање
- Двоструко завршен ред (Декуе) у Ц ++ са примерима
- Јава Куеуе - Методе редова, примена редова са примерима
- Водич за приоритетни редослед Јава - Примена и примери
- Структура података приоритетног реда у Ц ++ са илустрацијом
- Структура података у реду у Ц ++ са илустрацијом
- Ц ++ Структура података кружног реда: Примена и примене
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- Редослед приоритета у СТЛ-у