English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليميات Java الأساسية

Java Control Flow

Java Arrays

Java Object-Oriented (I)

Java Object-Oriented (II)

Java Object-Oriented (III)

معالجة الاستثناءات Java

Java List

Java Queue (Queue)

Java Map Collections

Java Set Collections

Java Input/Output (I/O)

Java Reader/Writer

مواضيع أخرى في Java

واجهة Deque Java

نحن سنتعلم في هذا الدرس عن واجهة Deque وكيفية استخدامها وطرقها.

واجهة Deque في إطار مجموعة Java Collections تقدم وظائف الحزمة المزدوجة (Deque). إنها تستمر في واجهة Queue.

عملية الحزمة المزدوجة

في الحزمة التقليدية، يتم إضافة العناصر في النهاية، وإزالة العناصر من الأمام. ولكن في الحزمة المزدوجة، يمكنناإدراج وإزالة العناصر من الأمام والخلف.

فئات تنفذ Deque

للبدء في استخدام وظائف واجهة Deque، نحتاج إلى استخدام الفئات التي تنفذ الواجهة:

كيفية استخدام Deque؟

في Java، يجب علينا استيراد حزمة java.util.Deque التي نستخدمها.

Deque<String> animal1 = new ArrayDeque<>();
Deque<String> animal2 = new LinkedList<>();

في هذا السياق، قمنا بإنشاء كائنين من الفئات ArrayDeque وLinkedList باسم animal1 وanimal2. يمكن استخدام وظائف واجهة Deque بواسطة هذه الكائنات.

طرق الحزمة المزدوجة

بما أن Deque يستمر في واجهة Queue، فإنها تستمر فيمن واجهة Queueجميع الطرق.

بالإضافة إلى الطرق المتاحة في واجهة Queue، تشمل واجهة Deque الطرق التالية:

  • addFirst() - إضافة العنصر المحدد في بداية الحزمة المزدوجة. إذا كانت الحزمة المزدوجة ممتلئة، يتم إطلاق استثناء.

  • addLast() - إضافة العنصر المحدد في نهاية الحزمة المزدوجة. إذا كانت الحزمة المزدوجة ممتلئة، يتم إطلاق استثناء.

  • offerFirst() - إضافة العنصر المحدد في بداية الحزمة المزدوجة. إذا كانت الحزمة المزدوجة ممتلئة، يتم إرجاع false.

  • offerLast() - إضافة العنصر المحدد في نهاية الحزمة المزدوجة. إذا كانت الحزمة المزدوجة ممتلئة، يتم إرجاع false.

  • getFirst() - عودة العنصر الأول من الحزمة المزدوجة. إذا كانت الحزمة المزدوجة فارغة، يتم إطلاق استثناء.

  • getLast() - العودة إلى العنصر الأخير من Deque. إذا كان Deque فارغًا، يُثير استثناء.

  • peekFirst() - العودة إلى العنصر الأول من Deque. إذا كان Deque فارغًا، العودة null.

  • peekLast() - العودة إلى العنصر الأخير من Deque. إذا كان Deque فارغًا، العودة null.

  • removeFirst() - العودة وإزالة العنصر الأول من Deque. إذا كان Deque فارغًا، يُثير استثناء.

  • removeLast() - العودة وإزالة العنصر الأخير من Deque. إذا كان Deque فارغًا، يُثير استثناء.

  • pollFirst() - العودة وإزالة العنصر الأول من Deque. إذا كان Deque فارغًا، العودة null.

  • pollLast() - العودة وإزالة العنصر الأخير من Deque. إذا كان Deque فارغًا، العودة null.

Deque كنوع بيانات دليل

يقدم صنف Stack في إطار Collections Java تحقيق دليل.

لكن، يُنصح باستخدام Deque كدليل بدلاً منصنف Stack. لأن طرق Stack معتمدة.

إليك الطرق التي يقدمها واجهة Deque لتحقيق دليل

  • push() - إضافة العنصر الأول إلى Deque

  • pop() - إزالة العنصر الأول من Deque

  • peek() - العودة إلى العنصر الأول من Deque

تحقيق Deque في صنف ArrayDeque

import java.util.Deque;
import java.util.ArrayDeque;
class Main {
    public static void main(String[] args) {
        //استخدام صنف ArrayDeque لإنشاء Deque 
        Deque<Integer> numbers = new ArrayDeque<>();
        //إضافة العنصر إلى Deque
        numbers.offer(1);
        numbers.offerLast(2);
        numbers.offerFirst(3);
        System.out.println("Deque: " + numbers);
        //استخراج العنصر من Deque
        int firstElement = numbers.peekFirst();
        System.out.println("الرمز الأول: " + firstElement);
        int lastElement = numbers.peekLast();
        System.out.println("العنصر الأخير: " + lastElement)}
        //إزالة العنصر من Deque
        int removedNumber1 = numbers.pollFirst();
        System.out.println("إزالة العنصر الأول: " + removedNumber1);
        int removedNumber2 = numbers.pollLast();
        System.out.println("إزالة العنصر الأخير: " + removedNumber2);
        System.out.println("Deque المعدل: " + numbers);
    }
}

نتائج الإخراج

Deque: [3, 1, 2]
العنصر الأول: 3
العنصر الأخير: 2
إزالة العنصر الأول: 3
إزالة العنصر الأخير: 2
Deque المعدل: [1]

للحصول على معلومات إضافية، يرجى زيارةArrayDeque Java.