Mündəricat
Java-da Deque interfeysi
Deque in Java, genişləndirən bir interfeysdir queue interfeys. İki tərəfli növbə deməkdir, yəni hər iki tərəfdən elementləri əlavə edib silə bilərik. İlk növbədə ilk çıxma (FIFO) olan növbə tətbiqetməsini və son çıxma (LIFO) yığım tətbiqini dəstəkləyir. Deque interface java.util-in bir hissəsidir paketi aiddir kolleksiya çərçivə.
Deque Hiyerarşi
Java-da Deque-in xüsusiyyətləri
- Java'daki Deque həm FIFO, həm də LIFO tətbiq edir
- Dinamik olaraq yenidən ölçülən bir massivdir
- Sıfır dəyərləri Deque-də saxlaya bilmərik
- Varsayılan olaraq mövzu təhlükəsiz deyil.
Java-da Deque interfeysini tətbiq edən siniflər
Aşağıda Deque interfeysini tətbiq edən dərslər:
- Əlaqəli siyahı:
Deque<Type> d = new LinkedList<Type>();
- ArrayDeque:
Deque<Type> d = new ArrayDeque<Type>();
Java'da Deque üsulları
Üsul | təsvir | Parametr |
---|---|---|
Mantı əlavə et (Element e) | Göstərilən elementi dekin sonuna əlavə edir. | e - əlavə ediləcək element. Qaytarma dəyəri - Doğru |
Boolean addAll (Collection c) | Göstərilən elementlərin kolleksiyasını dekoya əlavə edir. | c - əlavə ediləcək elementlər toplusu Qaytarma dəyəri - doğrudur |
void addFirst (e elementi) | Deque əvvəlinə bir element əlavə edir | e - daxil ediləcək element |
void addLast (Element e) | Dekin sonunda bir element əlavə edir | e - daxil ediləcək element |
boşluq təmiz () | Dekadakı bütün elementləri təmizləyir. | |
Mantiq tərkibində (Nesne o) var | Deque-də göstərilən elementin olub-olmadığını yoxlayır | Qaytarma dəyəri - deque elementi ehtiva edərsə doğrudur |
BooleanAll (Collection c) ehtiva edir | Deque kolleksiyasındakı bütün elementlərin olub olmadığını yoxlayır | Qaytarma dəyəri - deque bütün elementləri ehtiva edərsə doğrudur |
Iterator azalan İterator () | Tərkibindəki elementlər üzərindəki bir iteratoru tərs qaydada qaytarır | |
Obyekt elementi () | Dekadakı ilk elementi (baş) qaytarır | |
Mantiq bərabərdir (O obyekt) | Deque göstərilən bütün elementləri tam qaydada ehtiva etdiyini müqayisə edir | Qaytarma dəyəri - obyekt elementləri deque ilə uyğun gəlsə doğrudur |
Obyekt getFirst () | Dekadakı ilk elementi (baş) qaytarır | |
Obyekt getLast () | Dekadakı son elementi (quyruğu) qaytarır | |
Boole isEmpty () | Deque'nin boş olub olmadığını yoxlayır | Qaytarma dəyəri - deque dəyər içermirsə doğrudur |
Təkrarlayıcı iterator () | Deque-nin iteratorunu ardıcıllıqla alır | Qaytarma dəyəri - təkrarlayıcı |
Mantı təklifi (Nesne e) | Elementi quyruq kimi daxil edir | e - əlavə ediləcək element |
Boolean təklifİlk (Nesne e) | Elemanı dekanın ön hissəsinə daxil edir | e - əlavə ediləcək element |
Boolean təklifLast (Object e) | Dequ sonuna element əlavə edir | e - əlavə ediləcək element |
Obyekt nəzərdən keçirmə () | Dekin ilk elementini alır (baş) | Deque boş olduqda null qaytarır |
Obyekt peekFirst () | Dekin ilk elementini alır (baş) | Deque boş olduqda null qaytarır |
Obyekt peekLast () | Deque (quyruq) son elementini alır | Deque boş olduqda null qaytarır |
Obyekt sorğusu () | Dekin ilk elementini alır və çıxarır (baş) | Deque boş olduqda null qaytarır |
Obyekt sorğusu Birincisi () | Dekin ilk elementini alır və çıxarır (baş) | Deque boş olduqda null qaytarır |
Obyekt sorğusu Son () | Deque (quyruq) son elementini alır və çıxarır. | Deque boş olduqda null qaytarır |
Nesne pop () | İlk elementi deque yığından alır və ya götürür | |
ləğv etmə (obyekt e) | Elemanı dekanın ön hissəsinə daxil edir | e - əlavə ediləcək element |
Obyekt sil () | İlk elementi dekodan çıxarır | |
Mantı sil (Nesne o) | Göstərilən obyektin mövcud olacağı təqdirdə ilk meydana gəlməsini dekodan çıxarır | o - Sökülməsi lazım olan element Qaytarma dəyəri - deque elementi ehtiva edərsə doğrudur |
Boolean kaldırAll (Collection c) | Kolleksiyadakı bütün elementlərin ilk meydana gəlməsini varsa varsa dekodan çıxarır | c - elementlərin toplanması Qaytarma dəyəri - deque kolleksiyanı ehtiva edərsə doğrudur |
Obyekt removeFirst () | Deque'nin ilk elementini çıxarır | |
Boolean removeFirstOccurence (Object e) | Deque-də göstərilən elementin ilk meydana gəlməsini aradan qaldırır | e - çıxarılacaq element |
Obyekt çıxarışLast () | Son elementi dekodan çıxarır | |
Boolean removeLastOccurence (Nesne e) | Göstərilən elementin son meydana gəlməsini dekodan çıxarır | e - çıxarılacaq element |
Boolean tutmaAll (Collection c) | Kolleksiyada göstərilən bütün elementləri deque ilə saxlayır. Digər elementlər silinəcəkdir | c - saxlanılması lazım olan elementlər toplusu Qaytarma dəyəri - deyilən üsula görə deque dəyişsə, doğrudur |
int ölçüsü () | Deque ölçüsünü alır | Qaytarma dəyəri - deque ölçüsü |
Obyekt [] toArray () | Bir sıra elementləri müvafiq ardıcıllıqla qaytarır | Qaytarma dəyəri - Dekodakı bütün elementlərin müvafiq ardıcıllıqla düzülməsi |
String toString () | Elementlər kolleksiyasının bir Sətir təmsilini qaytarır | Qaytarma dəyəri - Vergül və boşluqla ayrılmış və [] daxilində olan sıra elementlərinin sətri |
Nümunə: Elementləri Deque-ə daxil edin
Java-da elementə deka əlavə etmək üçün bir neçə metod mövcuddur. Aşağıdakı nümunə, bütün metodlardan istifadə edərək elementlərin necə yerləşdiriləcəyini göstərir. Add () və offer () metodları elementləri normal sıraya daxil edir. AddFirst (), offerFirst () və push () metodları, dəyərin birincisinə dəyər əlavə edir. AddLast () və offerLast () metodlarından istifadə edərək dekanın sonuna elementlər əlavə edə bilərik. Elementlər toplusunu əlavə etmək üçün addAll () metodundan istifadə edə bilərik.
import java.util.Deque; import java.util.LinkedList; public class InsertDequeElements { public static void main(String[] args) { Deque<String> d = new LinkedList<String>(); d.add("C"); d.addFirst("C++"); d.addLast("Java"); System.out.println("Elements in the Deque after add, addFirst and addLast: " + d); Deque<String> dq = new LinkedList<String>(); dq.add("JavaScript"); dq.add("Python"); d.addAll(dq); System.out.println("Elements in the Deque after addAll: " + d); d.offer(".Net"); d.offerFirst("C#"); d.offerLast("VBScript"); System.out.println("Elements in the Deque after offer, offerFirst and offerLast: " + d); d.push("HTML"); System.out.println("Elements in the Deque after push: " + d); } }
Misal: Deque-dən elementləri silin
Fərqli əlavə əməliyyatlarına bənzər şəkildə, Java-da deque aşağıdakı nümunədə ətraflı şəkildə göstərilən bir neçə silmə əməliyyatını dəstəkləyir. Kaldır () və anket () metodları elementi dekanın əvvəlindən silir. RemoveFirst (), pollFirst () və pop () metodları ilk elementi silir. Son elementi silmək üçün removeLast () və pollLast () metodlarından istifadə edə bilərik. RemoveAll () metodundan istifadə edərək elementlər toplusunu da silə bilərik. RetainAll () metodu yalnız elementlər toplusunu saxlayır və digərlərini deque-dən silir.
import java.util.ArrayDeque; import java.util.Deque; public class DeleteDequeElements { public static void main(String[] args) { Deque<Integer> d = new ArrayDeque<Integer>(); d.add(30); d.add(20); d.add(10); d.add(50); d.add(40); d.add(200); d.add(300); Deque<Integer> dq = new ArrayDeque<Integer>(); dq.add(70); dq.add(60); dq.add(80); dq.add(90); dq.add(100); d.addAll(dq); System.out.println("Elements in the Deque: " + d); d.remove(); d.remove(50); System.out.println("Elements after remove: " + d); d.removeFirst(); d.removeLast(); System.out.println("Elements after removeFirst and removeLast: " + d); d.poll(); d.pollFirst(); d.pollLast(); System.out.println("Elements after poll, pollFirst and pollLast: " + d); d.pop(); System.out.println("Elements after pop: " + d); d.retainAll(dq); System.out.println("Elements after retainAll: " + d); d.removeAll(dq); System.out.println("Elements after removeAll: " + d); } }
Elements in the Deque: [30, 20, 10, 50, 40, 200, 300, 70, 60, 80, 90, 100] Elements after remove: [20, 10, 40, 200, 300, 70, 60, 80, 90, 100] Elements after removeFirst and removeLast: [10, 40, 200, 300, 70, 60, 80, 90] Elements after poll, pollFirst and pollLast: [200, 300, 70, 60, 80] Elements after pop: [300, 70, 60, 80] Elements after retainAll: [70, 60, 80] Elements after removeAll: []
Nümunə: Deque-dən elementləri alın
Aşağıdakı nümunədə bir elementin olub olmadığını yoxlamaq və Deque'in baş və quyruq elementlərini Java-da necə əldə etmək olar. Dəyər mövcudluğunu yoxlamaq üçün, ehtiva edən () və ehtiva edən (bütün) metodu istifadə edə bilərik. Element (), peek (), peekFirst () və getFirst () metodlarından istifadə edərək baş elementi əldə edə bilərik, quyruq elementini almaq üçün getLast () və peekLast () metodlarından istifadə edə bilərik.
import java.util.ArrayDeque; import java.util.Deque; public class RetrieveDequeElements { public static void main(String[] args) { Deque<Integer> d = new ArrayDeque<Integer>(); d.add(30); d.add(20); d.add(10); d.add(50); d.add(40); d.add(60); d.add(70); Deque<Integer> dq = new ArrayDeque<Integer>(); dq.add(80); dq.add(90); d.addAll(dq); System.out.println(d); System.out.println(d.contains(10)); System.out.println(d.contains(200)); System.out.println(d.containsAll(dq)); System.out.println("Output of element: " + d.element()); System.out.println("Get first element using getFirst: " + d.getFirst()); System.out.println("Get last element using getLast: " + d.getLast()); System.out.println("Output of peek: " + d.peek()); System.out.println("Get first element using peekFirst: " + d.peekFirst()); System.out.println("Get last element using peekLast: " + d.peekLast()); } }
[30, 20, 10, 50, 40, 60, 70, 80, 90] true false true Output of element: 30 Get first element using getFirst: 30 Get last element using getLast: 90 Output of peek: 30 Get first element using peekFirst: 30 Get last element using peekLast: 90
Misal: Deque'yi silin və boş olub olmadığını yoxlayın
Aşağıdakı misal, bütün elementləri clear () metodundan istifadə edərək sökməyin necə təmizlənəcəyini göstərir. DeEkin boş olduğunu isEmpty () metodundan istifadə edərək də yoxlaya bilərik.
import java.util.ArrayDeque; import java.util.Deque; public class ClearDeque { public static void main(String[] args) { Deque<Integer> d = new ArrayDeque<Integer>(); d.add(30); d.add(20); d.add(10); d.add(50); System.out.println("Is Empty: " + d.isEmpty()); d.clear(); System.out.println("Is Empty after clear: " + d.isEmpty()); } }
Is Empty: false Is Empty after clear: true
Misal: Deque elementlərini təkrarlayın
Varsayılan olaraq, elementləri eyni ardıcıllıqla qaytaran iterator () metodundan istifadə edərək dekodakı elementləri təkrarlaya bilərik. Dəyərləri daxil edildiyi azalan qaydada almaq üçün azalan İterator () metodundan istifadə edə bilərik.
import java.util.ArrayDeque; import java.util.Deque; import java.util.Iterator; public class IterateDeque { public static void main(String[] args) { Deque<Integer> d = new ArrayDeque<Integer>(); d.add(30); d.add(20); d.add(10); d.add(50); d.add(40); System.out.println("Iterate using iterator:"); Iterator<Integer> i = d.iterator(); while(i.hasNext()) System.out.println(i.next()); System.out.println("Iterate using descendingIterator:"); Iterator<Integer> di = d.descendingIterator(); while(di.hasNext()) System.out.println(di.next()); } }
Iterate using iterator: 30 20 10 50 40 Iterate using descendingIterator: 40 50 10 20 30
Misal: Deque-i Array-a çevirin
Aşağıdakı nümunədə, toArray () metodundan istifadə edərək dequ bir sıra təmsilçiliyinə çeviririk. Bu şəkildə sıra indeksinə əsaslanan dəyərlərə çata bilərik.
import java.util.ArrayDeque; import java.util.Arrays; import java.util.Deque; public class ConvertDequeToArray { public static void main(String[] args) { Deque<String> d = new ArrayDeque<String>(); d.add("James"); d.add("John"); d.add("Xavior"); d.add("Thomas"); String[] arr = d.toArray(new String[d.size()]); System.out.println(Arrays.deepToString(arr)); System.out.println("Value at index 2: "+ arr[2]); } }
[James, John, Xavior, Thomas] Value at index 2: Xavior