الوقت/التاريخ الآن هو الخميس مارس 28, 2024 8:29 am

1 نتيجة بحث عن LinkedList

[Java]التعامل مع واجهة قوائم الانتظار Java Queue Interface

اهلا بكم في هذا المقال التعليمي ، سنتعرف على واجهة قائمة الانتظار #Queue وطرقها وكيفية استخدامها 

اولا: مفهوم قائمة الانتظلر #Queue

واجهة Java Queue عبارة عن بنية بيانات تتيح لك إدراج العناصر في قائمة مرتبة خطيًا تتبع مبدء First-In-First-Out  فى ترتيب العناصر. هذا يعني أن العنصر الذي تم إدراجه أولاً في قائمة الانتظار سيكون العنصر الأول المراد إزالته.

الوسم linkedlist على المنتدى منتدى مصر التقني Queue-implementation

ثانيا :الفئات التي تتطبق قائمة الانتظار #Queue

نظرًا لأن قائمة الانتظار هي عبارة عن واجهة #Interface، فلا يمكننا توفير التنفيذ المباشر لها.لذلك من أجل استخدام وظائف قائمة الانتظار#Queue ، نحتاج إلى استخدام الفئات التي تنفذها التالية :



  • ArrayDeque
  • LinkedList
  • PriorityQueue


الوسم linkedlist على المنتدى منتدى مصر التقني Queue-interface

يتم أيضًا توسيع واجهة قائمة الانتظار #Queue  بواسطة واجهات فرعية مختلفة:



  • Deque
  • BlockingQueue
  • BlockingDeque


الوسم linkedlist على المنتدى منتدى مصر التقني Queue-subinterfaces

ثالثا :كيفية استخدام قائمة الانتظار #Queue

حتى نستطيع إستخدام قائمة الانتظار فى تطبيقات الجافا ، يجب علينا استيراد حزمة java.util.Queue ثم بعد ذلك تنفيذ احدى الفئات التى تطبق واجهة قائمة الانتظار على النحو التالى :

الكود:
// LinkedList implementation of Queue
Queue<String> animal1 = new LinkedList<>();

// Array implementation of Queue
Queue<String> animal2 = new ArrayDeque<>();

// Priority Queue implementation of Queue
Queue<String> animal 3 = new PriorityQueue<>();


فى الشفرة اعلاه قمنا بإنشاء كائنات animal1, animal2 , animal3 من فئات #LinkedList و #ArrayDeque و #PriorityQueue على التوالي. ,و بهذا يمكن لهذه الكائنات استخدام وظائف واجهة قائمة الانتظار #Queue التالية :


  • add() - إدراج العنصر المحدد في قائمة الانتظار. إذا نجحت المهمة ، ترجع الدالة add () إلى القيمة true ، وإذا لم تكن كذلك ، فإنها تطرح استثناءً
  • offer() - يُدرج العنصر المحدد في قائمة الانتظار. إذا نجحت المهمة ، فإن offer () ترجع صوابًا ، وإلا فإنها ترجع خطأ
  • element() - إرجاع رأس قائمة الانتظار. يطرح استثناء إذا كانت قائمة الانتظار فارغة.
  • peek()- إرجاع رأس قائمة الانتظار. ترجع فارغة إذا كانت قائمة الانتظار فارغة.
  • remove()- إرجاع وإزالة رأس قائمة الانتظار. يطرح استثناء إذا كانت قائمة الانتظار فارغة.
  • poll()- إرجاع رأس قائمة الانتظار وإزالته. ترجع فارغة إذا كانت قائمة الانتظار فارغة.


أمثلة توضيحية :

1_تنفيذ واجهة قائمة الانتظار #Queue بإستخدام الفئة #LinkedList

الكود:
import java.util.Queue;
import java.util.LinkedList;

class Main {

    public static void main(String[] args) {
        // Creating Queue using the LinkedList class
        Queue<Integer> numbers = new LinkedList<>();

        // offer elements to the Queue
        numbers.offer(1);
        numbers.offer(2);
        numbers.offer(3);
        System.out.println("Queue: " + numbers);

        // Access elements of the Queue
        int accessedNumber = numbers.peek();
        System.out.println("Accessed Element: " + accessedNumber);

        // Remove elements from the Queue
        int removedNumber = numbers.poll();
        System.out.println("Removed Element: " + removedNumber);

        System.out.println("Updated Queue: " + numbers);
    }
}


Output
الكود:

Queue: [1, 2, 3]
Accessed Element: 1
Removed Element: 1
Updated Queue: [2, 3]


2_تنفيذ واجهة قائمة الانتظار #Queue بإستخدام الفئة #PriorityQueue

الكود:
import java.util.Queue;
import java.util.PriorityQueue;

class Main {

    public static void main(String[] args) {
        // Creating Queue using the PriorityQueue class
        Queue<Integer> numbers = new PriorityQueue<>();

        // offer elements to the Queue
        numbers.offer(5);
        numbers.offer(1);
        numbers.offer(2);
        System.out.println("Queue: " + numbers);

        // Access elements of the Queue
        int accessedNumber = numbers.peek();
        System.out.println("Accessed Element: " + accessedNumber);

        // Remove elements from the Queue
        int removedNumber = numbers.poll();
        System.out.println("Removed Element: " + removedNumber);

        System.out.println("Updated Queue: " + numbers);
    }
}


Output
الكود:

Queue: [1, 5, 2]
Accessed Element: 1
Removed Element: 1
Updated Queue: [2, 5]


من طرف أحمد مناع
في الجمعة ديسمبر 25, 2020 7:56 am
 
ابحث في: أساسيات اللغة Java Basics
موضوع: [Java]التعامل مع واجهة قوائم الانتظار Java Queue Interface
المساهمات: 0
مشاهدة: 967

الرجوع الى أعلى الصفحة

انتقل الى: