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

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 Feature | PriorityQueue data type | LinkedList as Queue data type |
| Order of Elements storage | PriorityQueue data type automatically Ordered by queue data type priority natural or custom order | LinkedList data type is automatically use or follow Queue data type storage method |
| Time Complexity in use | PriorityQueue data type use O(log n) for add(), remove(), peek() function method for time complexity | LinkedList use O(1) for offer(), poll(), peek()function method for time complexity |
| Allows Duplicates or not | Yes, PriorityQueue data type duplicates value element are allowed | Yes, LinkedList data type duplicates value element are allowed |
| Null Elements allowed | PriorityQueue data type Not allowed any null element | Yes, LinkedList data type Allowed null values |
| Thread Safety features | PriorityQueue data type Not support synchronized you need to use external synchronization method | LinkedList data type Not synchronized you need to use external synchronization method |
| Performance usages | PriorityQueue data type Efficient for priority-based access (O(log n)) concept | LinkedList data type Efficient for FIFO operations (O(1)) data type order |
| Where to Use Cases | PriorityQueue used When the order of data elements is based on priority. Like, task scheduling, event handling, etc | LinkedList 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 क्यू सीक्वेंस आर्डर की आवश्यकता हो. जैसे कि, जब लिंक्डलिस्ट टास्क या मैसेज को उसी सीक्वेंस ऑर्डर में मेन्टेन या प्रोसेस किया जाता है. जिस लिंक्डलिस्ट डाटा ऑर्डर में वे मिले थे। यह लिंक्डलिस्ट डाटा टाइप में इवेंट हैंडलिंग, बफरिंग, या इस प्रकार की किसी भी कंडीशन के लिए बहुत यूज़फुल है. जहाँ लिंक्डलिस्ट डाटा में सबसे पहले ऐड किए गए लिंक्डलिस्ट डाटा एलिमेंट को सबसे पहले प्रोसेस किया जाना चाहिए।
