logo

واجهة جافا ديك

الواجهة المسماة Deque موجودة في حزمة java.util. إنه النوع الفرعي لقائمة انتظار الواجهة. يدعم Deque إضافة وإزالة العناصر من طرفي بنية البيانات. لذلك، يمكن استخدام deque كمكدس أو قائمة انتظار. نحن نعلم أن المكدس يدعم عملية Last In First Out (LIFO)، وأن عملية First In First Out مدعومة بقائمة الانتظار. وبما أن deque يدعم كليهما، فيمكن تنفيذ أي من العمليات المذكورة عليه. Deque هو اختصار لـ 'قائمة انتظار مزدوجة النهاية'.

إعلان واجهة Deque

 public interface Deque extends Queue 

طرق واجهة Java Deque

طريقة وصف
إضافة منطقية (كائن) يتم استخدامه لإدراج العنصر المحدد في هذا deque وإرجاع صحيح عند النجاح.
عرض منطقي (كائن) يتم استخدامه لإدراج العنصر المحدد في هذا deque.
إزالة الكائن () يتم استخدامه لاسترداد وإزالة رأس هذا deque.
استطلاع الكائن () يتم استخدامه لاسترداد وإزالة رأس deque هذا، أو إرجاع قيمة فارغة إذا كان deque فارغًا.
عنصر الكائن() يتم استخدامه لاسترداد رأس هذا deque، لكنه لا يزيله.
نظرة خاطفة على الكائن () يتم استخدامه لاسترداد رأس deque هذا، لكنه لا يزيله، أو يُرجع قيمة فارغة إذا كان deque فارغًا.
نظرة خاطفة على الكائن () تقوم الطريقة بإرجاع عنصر الرأس الخاص بـ deque. لا تقوم الطريقة بإزالة أي عنصر من deque. يتم إرجاع Null بهذه الطريقة عندما يكون deque فارغًا.
نظرة خاطفة على الكائن () تقوم الطريقة بإرجاع العنصر الأخير من deque. لا تقوم الطريقة بإزالة أي عنصر من deque. يتم إرجاع Null بهذه الطريقة عندما يكون deque فارغًا.
العرض المنطقي أولاً (هـ) إدراج العنصر e في مقدمة قائمة الانتظار. إذا نجح الإدراج، فسيتم إرجاع true؛ وإلا فهو كاذب.
عرض الكائنالأخير(ه) إدراج العنصر e في ذيل قائمة الانتظار. إذا نجح الإدراج، فسيتم إرجاع true؛ وإلا فهو كاذب.
جافا arraydeque التسلسل الهرمي

فئة ArrayDeque

نحن نعلم أنه ليس من الممكن إنشاء كائن واجهة في Java. لذلك، لإنشاء مثيل، نحتاج إلى فئة تنفذ واجهة Deque، وهذه الفئة هي ArrayDeque. ينمو ويتقلص حسب الاستخدام. كما أنه يرث فئة AbstractCollection.

النقاط المهمة حول فئة ArrayDeque هي:

  • على عكس قائمة الانتظار، يمكننا إضافة أو إزالة العناصر من كلا الجانبين.
  • العناصر الفارغة غير مسموح بها في ArrayDeque.
  • ArrayDeque ليس مؤشر ترابط آمن، في غياب المزامنة الخارجية.
  • ArrayDeque ليس لديه قيود على السعة.
  • ArrayDeque أسرع من LinkedList وStack.

ArrayDeque التسلسل الهرمي

يظهر التسلسل الهرمي لفئة ArrayDeque في الشكل المعروض على الجانب الأيمن من الصفحة.

دائرة الجامع كاملة

إعلان فئة ArrayDeque

دعونا نرى الإعلان عن فئة java.util.ArrayDeque.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

مثال جافا ArrayDeque

اسم الملف: 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); } } } 

انتاج:

Ravi Vijay Ajay 

مثال Java ArrayDeque: OfferFirst() و pollLast()

اسم الملف: 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); } } } 

انتاج:

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

مثال Java ArrayDeque: Book

اسم الملف: 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); } } } 

انتاج:

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