logo

Java Deque Arayüzü

Java.util paketinde Deque adı verilen arayüz bulunmaktadır. Arayüz kuyruğunun alt türüdür. Deque, veri yapısının her iki ucundan öğelerin eklenmesinin yanı sıra çıkarılmasını da destekler. Bu nedenle deque yığın veya kuyruk olarak kullanılabilir. Yığın Son Giren İlk Çıkar (LIFO) işlemini desteklediğini ve İlk Giren İlk Çıkar işleminin bir kuyruk tarafından desteklendiğini biliyoruz. Bir deque her ikisini de desteklediğinden, üzerinde bahsedilen işlemlerden herhangi biri gerçekleştirilebilir. Deque, şunun kısaltmasıdır: 'çift uçlu kuyruk'.

Deque Arayüzü beyanı

 public interface Deque extends Queue 

Java Deque Arayüzü Yöntemleri

Yöntem Tanım
Boolean eklentisi (nesne) Belirtilen elemanı bu deque'e eklemek ve başarı durumunda true değerini döndürmek için kullanılır.
boolean teklifi(nesne) Belirtilen elemanı bu deque'e eklemek için kullanılır.
Nesne kaldırma() Bu deque'nin kafasını almak ve çıkarmak için kullanılır.
Nesne yoklaması() Bu deque'in başını almak ve kaldırmak için kullanılır veya bu deque boşsa null değerini döndürür.
Nesne öğesi() Bu deque'in kafasını almak için kullanılır, ancak çıkarmaz.
Nesneye göz atma() Bu deque'in başını almak için kullanılır ancak kaldırmaz veya bu deque boşsa null değerini döndürür.
Nesne peekFirst() Yöntem, deque'in baş öğesini döndürür. Yöntem, deque'den herhangi bir öğeyi kaldırmaz. Deque boş olduğunda bu yöntemle null döndürülür.
Nesne peekLast() Yöntem, deque'nin son öğesini döndürür. Yöntem, deque'den herhangi bir öğeyi kaldırmaz. Deque boş olduğunda bu yöntemle null döndürülür.
Boole teklifiFirst(e) E öğesini kuyruğun önüne ekler. Ekleme başarılı olursa true değeri döndürülür; aksi takdirde yanlış.
Nesne teklifiLast(e) E öğesini kuyruğun sonuna ekler. Ekleme başarılı olursa true değeri döndürülür; aksi takdirde yanlış.
java arraydeque hiyerarşisi

ArrayDeque sınıfı

Java'da bir arayüzün nesnesini yaratmanın mümkün olmadığını biliyoruz. Bu nedenle örnekleme için Deque arayüzünü uygulayan bir sınıfa ihtiyacımız var ve bu sınıf ArrayDeque'dir. Kullanıma göre büyür ve küçülür. Ayrıca AbstractCollection sınıfını da miras alır.

ArrayDeque sınıfıyla ilgili önemli noktalar şunlardır:

  • Queue'dan farklı olarak her iki taraftan da öğe ekleyebilir veya kaldırabiliriz.
  • ArrayDeque'te boş öğelere izin verilmez.
  • ArrayDeque, harici senkronizasyon olmadığında iş parçacığı açısından güvenli değildir.
  • ArrayDeque'in kapasite sınırlaması yoktur.
  • ArrayDeque, LinkedList ve Stack'tan daha hızlıdır.

DiziDeque Hiyerarşisi

ArrayDeque sınıfının hiyerarşisi sayfanın sağ tarafında gösterilen şekilde verilmiştir.

Oluşturucu tasarım deseni

ArrayDeque sınıf bildirimi

Java.util.ArrayDeque sınıfının bildirimine bakalım.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Java ArrayDeque Örneği

Dosya adı: ArrayDequeExample.java

 import java.util.*; public class ArrayDequeExample { public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Ravi'); deque.add('Vijay'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } } 

Çıktı:

Ravi Vijay Ajay 

Java ArrayDeque Örneği: OfferFirst() ve pollLast()

Dosya adı: DequeExample.java

 import java.util.*; public class DequeExample { public static void main(String[] args) { Deque deque=new ArrayDeque(); deque.offer('arvind'); deque.offer('vimal'); deque.add('mukul'); deque.offerFirst('jai'); System.out.println('After offerFirst Traversal...'); for(String s:deque){ System.out.println(s); } //deque.poll(); //deque.pollFirst();//it is same as poll() deque.pollLast(); System.out.println('After pollLast() Traversal...'); for(String s:deque){ System.out.println(s); } } } 

Çıktı:

After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal 

Java ArrayDeque Örnek: Kitap

Dosya adı: ArrayDequeExample.java

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class ArrayDequeExample { public static void main(String[] args) { Deque set=new ArrayDeque(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to Deque set.add(b1); set.add(b2); set.add(b3); //Traversing ArrayDeque for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

Çıktı:

101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6