English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، سنتعلم واجهة Queue في Java ومETHODS الخاصة بها.
تقدم واجهة Queue في إطار مجموعة Java Collections وظائف بنية البيانات الحقل. إنها تنسق واجهة Collection.
بما أن Queue هي واجهة، لسنا قادرين على تقديم تنفيذ مباشر لها.
للاستفادة من وظائف Queue، نحتاج إلى استخدام الفئات التي تتحقق منها:
يمكن تنسيق واجهة Queue من قبل واجهات فرعية متعددة:
Deque
BlockingQueue
BlockingDeque
في الحقل، بأولاً يأتي أولاًطريقة التخزين ووصول العناصر. بمعنى آخر،إضافة العناصر من الخلف، حذف العناصر من الأمام.
في 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 جميع طرق واجهة 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 وطرقها.