PriorityQueue, LinkedList as Queue In Hindi

PriorityQueue, LinkedList as Queue In Hindi

जावा प्रोग्रामिंग में PriorityQueue और LinkedList दोनों डाटा टाइप को Queue लिस्ट इंटरफ़ेस के रूप में जावा प्रोगाम में इम्प्लीमेंट किया जा सकता है, जावा में PriorityQueue और LinkedList दोनों डाटा टाइप के डिफ़ॉल्ट यूज़ बिहेवियर, यूज़ केस, और सिस्टम परफॉर्मेंस स्पेसिफिकेशन एंड फीचर्स इंडिविजुअल आर्डर में डिफरेंट होते हैं।

PriorityQueue, LinkedList as Queue In Hindi

So, let’s take a closer look at both PriorityQueue and LinkedList data types in Java programming.

PriorityQueue in Java.

जावा प्रोग्रामिंग लैंग्वेज में PriorityQueue डाटा टाइप जावा कलेक्शन फ्रेमवर्क का एक बिल्ट-इन फीचर्स है, यह जावा यूजर को प्रोग्राम में Queue इंटरफ़ेस डाटा टाइप स्ट्रक्चर को अप्लाई करने में हेल्प करता है। यह एक क्यू  डाटा स्ट्रक्चर की तरह डिफाइन होता है, जो एक क्यू आर्डर में इसेक डाटा एलिमेंट्स को उनके डिफ़ॉल्ट नेचुरल आर्डर के अनुसार  या क्यू डाटा एलिमेंट क्रिएशन के समय प्रोवाइड किए गए कस्टम कम्पेरेटर के अनुसार ऑर्डर करता है। इसमें सबसे ज़्यादा प्रायोरिटी वाला क्यू एलिमेंट हमेशा क्यू में सबसे फर्स्ट या टॉप में रिप्रेजेंट होता है. यह एक रेगुलर FIFO (फर्स्ट-इन-फर्स्ट-आउट) लाइन क्यू आर्डर से डिफरेंट है।

Special features of Java PriorityQueue.

  • Priority-based ordering – यह जावा क्यू एलिमेंट्स को उनकी सेट प्रायोरिटी जैसे, नेचुरल ऑर्डर या कस्टम यूजर डिफाइन कम्पेरेटर के अनुसार ऑर्डर या अरेंज करता है। क्यू डाटा आर्डर में मोस्ट प्रायोरिटी वाले क्यू एलिमेंट को पहले डीक्यू किया जाता है।
  • Not FIFO – जावा क्यू डाटा टाइप में ट्रेडिशनल क्यू के ऑपोसिट, PriorityQueue एसेंशियल नहीं है. यहाँ क्यू एलिमेंट्स को उसी ऑर्डर में डीक्यू करे, जिस ऑर्डर में क्यू एलिमेंट को ऐड किया गया था. यह क्यू ऐड डाटा एलिमेंट की प्रायोरिटी पर डिपेंड करता है।
  • Null values ​​not allowed – जावा प्रोग्राम में प्रायोरिटी क्यू नल वैल्यू एलिमेंट्स को परमिट नहीं करता है, क्योंकि इसमें क्यू प्रायोरिटी कम्पेरेटर या नेचुरल ऑर्डरिंग से डिफाइन होती है।
  • Not synchronized – जावा प्रोग्राम में क्यू डाटा टाइप एलिमेंट में डिफ़ॉल्ट रूप से थ्रेड-सेफ फीचर्स नहीं है। यदि इसमें जावा यूजर को थ्रेड-सेफ्टी फीचर्स की आवश्यकता है. तो इसमें जावा यूजर को एक्सटर्नल सिंक्रोनाइज़ेशन को अप्लाई करने की ज़रूरत होगी या जावा यूजर को इसमें कॉन्करेंट एनवायरनमेंट में प्रायोरिटीब्लॉकिंग क्यू को अप्लाई करना होगा।
  • Performance – जावा प्रोग्राम में add(), remove(), और peek(), जैसे क्यू फंक्शन मेथड ऑपरेशन्स में सामान्यता अंडरलाइंग हीप डेटा स्ट्रक्चर के कारण O(log n) टाइम का यूज़ होता है।

Java PriorityQueue Example.

import java.util.PriorityQueue;

public class PriorityDataType {

    public static void main(String[] args) {

        // here we Creating a PriorityQueue with natural data element order/min-heap by default

        PriorityQueue<Integer> pqdata = new PriorityQueue<>();

        // here we Adding a desire numeric element to the PriorityQueue data type

        pqdata.add(11);

        pqdata.add(12);

        pqdata.add(13);

        pqdata.add(14);

        pqdata.add(15);

        // here we Removing and printing elements from the PriorityQueue data element

        System.out.println(“Here Priority Queue elements is -“);

        while (!pqdata.isEmpty()) {

            System.out.println(pqdata.poll());  // here it PriorityQueue Elements are dequeued in the order of their priority arrange smallest first

        }

    }

}

Java PriorityQueue Explanation.

यहाँ प्रायोरिटी क्यू एक्साम्प्ल में, सबसे छोटा प्रायोरिटी क्यू एलिमेंट (11) को सबसे पहले डीक्यू किया गया है, क्योंकि इसमें PriorityQueue डिफ़ॉल्ट रूप से मिन-हीप कांसेप्ट ऑर्डर को फ़ॉलो करता है. जिसमे मिनिमम वैल्यू वाले क्यू एलिमेंट की प्रायोरिटी सबसे ज़्यादा होती है। यदि यहाँ जावा यूजर मैक्स-हीप फीचर्स को चाहते हैं. तो इसमें बड़े क्यू एलिमेंट की प्रायोरिटी अधिक होती है, तो यहाँ जावा यूजर एक कस्टम कम्पेरेटर को यूज़  कर सकते हैं।

LinkedList as a Queue in Java.

जावा प्रोग्राम में लिंक्डलिस्ट डाटा टाइप, एक List डाटा टाइप इंटरफ़ेस का एक डबल-लिंक्डलिस्ट अप्लाई मेथड या कांसेप्ट है. याद रहे, लिंक्डलिस्ट डाटा टाइप Queue डाटा इंटरफ़ेस को अप्लाई करता है. इस वजह से, इसे क्यू के रूप में अप्लाई किया जा सकता है। क्यू के के रूप में यूज़ होने वाली लिंक्डलिस्ट, FIFO (फर्स्ट इन फर्स्ट आउट) कांसेप्ट  को फॉलो करती है. यहाँ इसमें यूज़ लिंक्डलिस्ट एलिमेंट क्यू के पीछे से ऐड किए जाते हैं, और फ्रंट लिंक्डलिस्ट आर्डर से डिलीट किए जाते हैं।

Features of LinkedList as a Queue.

  • FIFO ordering – क्यू के रूप में यूज़ होने वाली लिंक्डलिस्ट डाटा में नई डाटा एलिमेंट इन्सर्ट ऑर्डर को मेन्टेन करता है। यहाँ लिंक्डलिस्ट में जो पहला लिस्ट एलिमेंट ऐड किया जाता है, वही सबसे पहले लिंक्डलिस्ट लिस्ट में रिमूव किया जाता है. (FIFO) आर्डर में।
  • Flexible – जावा प्रोग्राम में एक लिंक्डलिस्ट क्यू डाटा ऑपरेशन जैसे, ऑफर(), पोल(), पीक()) और लिस्ट ऑपरेशन जैसे, ऐड(), गेट(), रिमूव()) फंक्शन मेथड की परमिशन प्रोवाइड करता है।
  • Allows null values – यह जावा प्रायोरिटीक्यू के अपोजिट, एक लिंक्डलिस्ट डाटा टाइप में जावा यूजर एक नल एलिमेंट को स्टोर कर सकते है. जैसा की, कुछ क्यू इम्प्लीमेंटेशन मेथड उन्हें ब्लॉक कर सकते हैं।
  • Not synchronized – मोस्ट ऑफ़ यूज़ केस कलेक्शन क्लास के जैसे, एक लिंक्डलिस्ट डाटा टाइप सिंक्रोनाइज़्ड नहीं होती है, इस वजह से लिंक्डलिस्ट डाटा टाइप में यदि थ्रेड-सेफ्टी फीचर्स की ज़रूरत है. तो जावा यूजर को इसे एक्सटर्नली आर्डर में मैनेज करना होगा या एक साथ रन होने वाले वेरिएंट को यूज़ करना होगा।

Java LinkedList as a Queue example.

import java.util.LinkedList;

import java.util.Queue;

public class LinkedListDataType {

    public static void main(String[] args) {

        // here we Creating a LinkedList as a Queue data type

        Queue<String> queuedata = new LinkedList<>();

        // here we Enqueueing LinkedList elements/adding to the rear of the queuedata

        queuedata.offer(“Java”);

        queuedata.offer(“Python”);

        queuedata.offer(“Sql”);

        queuedata.offer(“Matlab”);

        // here we Dequeueing LinkedList elements/removing from the front of the queuedata element

        System.out.println(“Here is the Queue elements sequence of deletion -“);

        while (!queuedata.isEmpty()) {

            System.out.println(queuedata.poll());  // here LinkedList Elements are dequeued in the FIFO sequence order

        }

    }

}

LinkedList as a Queue explanation.

यहाँ लिंक्डलिस्ट एक्साम्प्ल में, लिंक्डलिस्ट एलिमेंट्स उसी ऑर्डर में डीक्यू होते हैं, जिस ऑर्डर में उन्हें लिंक्डलिस्ट में एनक्यू किया गया था. सबसे फर्स्ट में Java, उसके बाद Python, Sql, और Matlab, सीक्वेंस आदि है।

Main difference between PriorityQueue and LinkedList as Queue

Each element FeaturePriorityQueue data typeLinkedList as Queue data type
Order of Elements storagePriorityQueue data type automatically Ordered by queue data type priority natural or custom orderLinkedList data type is automatically use or follow Queue data type storage method
Time Complexity in usePriorityQueue data type use O(log n) for add(), remove(), peek() function method for time complexityLinkedList use O(1) for offer(), poll(), peek()function method for time complexity
Allows Duplicates or notYes, PriorityQueue data type duplicates value element are allowedYes, LinkedList data type duplicates value element are allowed
Null Elements allowedPriorityQueue data type Not allowed any null elementYes, LinkedList data type Allowed null values
Thread Safety featuresPriorityQueue data type Not support synchronized you need to use external synchronization methodLinkedList data type Not synchronized you need to use external synchronization method
Performance usagesPriorityQueue data type Efficient for priority-based access (O(log n)) conceptLinkedList data type Efficient for FIFO operations (O(1)) data type order
Where to Use CasesPriorityQueue used When the order of data elements is based on priority. Like, task scheduling, event handling, etcLinkedList used When FIFO behavior is required. Like, queueing tasks, message handling, etc

Summary of the use of PriorityQueue and LinkedList in Java.

  • PriorityQueue – जावा प्रोग्रामिंग में PriorityQueue डाटा टाइप का यूज़ तब किया जाता है, जब जावा यूजर को PriorityQueue एलिमेंट्स को इंसर्शन के ऑर्डर के बदले प्रायोरिटी के आधार पर डीक्यू करने की आवश्यकता हो। जैसे, जब जावा यूजर कोई प्रायोरिटी शेड्यूलिंग एल्गोरिदम जैसे, CPU शेड्यूलिंग या टास्क प्रायोरिटी को अप्लाई करते है।
  • LinkedList as a Queueजावा प्रोग्रामिंग में लिंक्डलिस्ट लिस्ट डाटा टाइप का यूज़ तब किया जाता है, जब जावा यूजर को एक स्टैंडर्ड FIFO क्यू सीक्वेंस आर्डर की आवश्यकता हो. जैसे कि, जब लिंक्डलिस्ट टास्क या मैसेज को उसी सीक्वेंस ऑर्डर में मेन्टेन या प्रोसेस किया जाता है. जिस लिंक्डलिस्ट डाटा ऑर्डर में वे मिले थे। यह लिंक्डलिस्ट डाटा टाइप में इवेंट हैंडलिंग, बफरिंग, या इस प्रकार की किसी भी कंडीशन के लिए बहुत यूज़फुल है. जहाँ लिंक्डलिस्ट डाटा में सबसे पहले ऐड किए गए लिंक्डलिस्ट डाटा एलिमेंट को सबसे पहले प्रोसेस किया जाना चाहिए।

Leave a Reply