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

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

Java Flow Control

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

واجهة Queue في Java

في هذا الدرس، سنتعلم واجهة Queue في Java ومETHODS الخاصة بها.

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

فئات تنفيذ الحقل

بما أن Queue هي واجهة، لسنا قادرين على تقديم تنفيذ مباشر لها.

للاستفادة من وظائف Queue، نحتاج إلى استخدام الفئات التي تتحقق منها:

واجهات تنسيق Queue

يمكن تنسيق واجهة Queue من قبل واجهات فرعية متعددة:

  • Deque

  • BlockingQueue

  • BlockingDeque

عملية عمل بنية البيانات الحقل

في الحقل، بأولاً يأتي أولاًطريقة التخزين ووصول العناصر. بمعنى آخر،إضافة العناصر من الخلف، حذف العناصر من الأمام.

كيفية استخدام الحقل (Queue)؟

في Java، يجب导入 حزمة java.util.Queue لاستخدام Queue.

// استخدم LinkedList لإنشاء
Queue<String> animal1 = new LinkedList<>();
// استخدم ArrayDeque لإنشاء
Queue<String> animal2 = new ArrayDeque<>();
// استخدم PriorityQueue لإنشاء
Queue<String> animal 3 = new PriorityQueue<>();

في هذا السياق، قمنا بإنشاء كائنات من الفئات LinkedList، ArrayDeque و PriorityQueue كـ Animal1، Animal2 و Animal3 على التوالي. يمكن استخدام أدوات واجهة Queue لهذه الكائنات.

طرق فئة Queue

تتضمن واجهة Queue جميع طرق واجهة Collection. لأن Collection هي واجهة رئيسية لـ Queue.

بعض الطرق الشائعة لواجهة Queue:

  • add() - إدراج العنصر المحدد في الطابور. إذا نجح العمل، فإن add() تعود true، وإلا يُثار استثناء.

  • offer() - إدراج العنصر المحدد في الطابور. إذا نجح العمل، فإن offer() تعود true، وإلا تعود false.

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

  • peek() - العودة للعنصر من بداية الطابور. إذا كان الطابور فارغًا، فإن العودة تكون null.

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

  • poll() - العودة وإزالة العنصر من بداية الطابور. إذا كان الطابور فارغًا، فإن العودة تكون null.

تنفيذ واجهة الطابور

1. تنفيذ فئة LinkedList

import java.util.Queue;
import java.util.LinkedList;
class Main {
    public static void main(String[] args) {
        //إنشاء الطابور باستخدام فئة LinkedList
        Queue<Integer> numbers = new LinkedList<>();
        //إضافة العنصر إلى الطابور
        numbers.offer(1);
        numbers.offer(2);
        numbers.offer(3);
        System.out.println("الطابور: " + numbers);
        //استنساخ العنصر من الطابور Queue
        int accessedNumber = numbers.peek();
        System.out.println("زيارة العنصر: " + accessedNumber);
        //إزالة العنصر من الطابور Queue
        int removedNumber = numbers.poll();
        System.out.println("حذف العنصر: " + removedNumber);
        System.out.println("Queue المعدلة: " + numbers);
    }
}

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

الطابور: [1, 2, 3]
استنساخ العنصر: 1
حذف العنصر: 1
الطابور المعدل: [2, 3]

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

2. تنفيذ فئة PriorityQueue

import java.util.Queue;
import java.util.PriorityQueue;
class Main {
    public static void main(String[] args) {
        //استخدام فئة PriorityQueue لإنشاء الطابور 
        Queue<Integer> numbers = new PriorityQueue<>();
        //إضافة العنصر إلى الطابور
        numbers.offer(5);
        numbers.offer(1);
        numbers.offer(2);
        System.out.println("الطابور: " + numbers);
        //زيارة العنصر في Queue
        int accessedNumber = numbers.peek();
        System.out.println("زيارة العنصر: " + accessedNumber);
        //حذف العنصر من Queue
        int removedNumber = numbers.poll();
        System.out.println("حذف العنصر: " + removedNumber);
        System.out.println("Queue المعدلة: " + numbers);
    }
}

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

Queue: [1, 5, 2]
زيارة العنصر: 1
حذف العنصر: 1
Queue المعدلة: [2, 5]

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

في التعليمات التالية، سنقوم بتوضيح تفاصيل مختلف واجهات Queue وطرقها.