जावा में शुरुआती लोगों के लिए टास्क क्यू: एक सरल गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: जावा में टास्क क्यू क्या है और इसकी आवश्यकता क्यों है

\n\n

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

\n\n

इसकी आवश्यकता क्यों है? क्यू निम्नलिखित में अपरिहार्य हैं:

\n
    \n
  • सर्वर पर अनुरोधों को संसाधित करना (वेब सर्वर, API)
  • \n
  • डेटाबेस में लिखने से पहले डेटा को बफर करना
  • \n
  • थ्रेड पूल को लागू करना
  • \n
  • एसिंक्रोनस कार्यों को व्यवस्थित करना
  • \n
\n\n

इस लेख में, हम जावा में क्यू के साथ काम करने के लिए मुख्य इंटरफ़ेस और क्लासेस को समझेंगे, सरल उदाहरण लिखेंगे और व्यावहारिक सुझाव देंगे। यह सामग्री शुरुआती लोगों के लिए है, इसलिए हम बुनियादी बातों से शुरू करेंगे।

\n\n

1. Queue इंटरफ़ेस और इसके बुनियादी तरीके

\n\n

जावा में, java.util.Queue इंटरफ़ेस क्यू के साथ काम करने के लिए बुनियादी संचालन को परिभाषित करता है। मुख्य तरीके:

\n\n
    \n
  • add(E e) — क्यू के अंत में एक तत्व जोड़ता है। यदि क्यू भरा हुआ है, तो यह एक अपवाद फेंकता है।
  • \n
  • offer(E e) — एक तत्व जोड़ता है। add() के विपरीत, यह विफलता पर अपवाद के बजाय false लौटाता है।
  • \n
  • remove() — पहले तत्व को हटाता है और लौटाता है। यदि क्यू खाली है, तो NoSuchElementException अपवाद।
  • \n
  • poll() — पहले तत्व को हटाता है और लौटाता है, या यदि क्यू खाली है तो null।
  • \n
  • element() — बिना हटाए पहला तत्व लौटाता है। खाली क्यू पर अपवाद।
  • \n
  • peek() — बिना हटाए पहला तत्व लौटाता है, या null।
  • \n
\n\n

Queue का सबसे लोकप्रिय कार्यान्वयन LinkedList है। यह सरल है और अधिकांश बुनियादी कार्यों के लिए उपयुक्त है।

\n\n
import java.util.LinkedList;\nimport java.util.Queue;\n\npublic class QueueExample {\n    public static void main(String[] args) {\n        // स्ट्रिंग्स की एक क्यू बनाएँ\n        Queue<String> taskQueue = new LinkedList<>();\n\n        // कार्य जोड़ें (offer विधि)\n        taskQueue.offer("कार्य 1: ऑर्डर प्रोसेस करें");\n        taskQueue.offer("कार्य 2: ईमेल भेजें");\n        taskQueue.offer("कार्य 3: रिपोर्ट तैयार करें");\n\n        System.out.println("टास्क क्यू: " + taskQueue);\n\n        // कार्यों को क्रम से प्रोसेस करें\n        while (!taskQueue.isEmpty()) {\n            String task = taskQueue.poll(); // पहला कार्य लें\n            System.out.println("निष्पादित किया जा रहा है: " + task);\n            // यहाँ निष्पादन का तर्क लिखा जा सकता है\n        }\n\n        System.out.println("सभी कार्य पूर्ण। क्यू खाली है: " + taskQueue.isEmpty());\n    }\n}
\n\n

प्रोग्राम का आउटपुट:

\n
टास्क क्यू: [कार्य 1: ऑर्डर प्रोसेस करें, कार्य 2: ईमेल भेजें, कार्य 3: रिपोर्ट तैयार करें]\nनिष्पादित किया जा रहा है: कार्य 1: ऑर्डर प्रोसेस करें\nनिष्पादित किया जा रहा है: कार्य 2: ईमेल भेजें\nनिष्पादित किया जा रहा है: कार्य 3: रिपोर्ट तैयार करें\nसभी कार्य पूर्ण। क्यू खाली है: true
\n\n

2. Deque — द्विदिशात्मक क्यू

\n\n

Deque (डबल एंडेड क्यू) इंटरफ़ेस Queue का विस्तार करता है और आपको क्यू के दोनों सिरों के साथ काम करने की अनुमति देता है। आप शुरुआत और अंत दोनों से तत्वों को जोड़ और हटा सकते हैं। यह अधिक लचीलापन प्रदान करता है।

\n\n

मुख्य अतिरिक्त तरीके:

\n
    \n
  • addFirst() / offerFirst() — शुरुआत में जोड़ें।
  • \n
  • addLast() / offerLast() — अंत में जोड़ें (offer() के समान)।
  • \n
  • removeFirst() / pollFirst() — शुरुआत से हटाएँ।
  • \n
  • removeLast() / pollLast() — अंत से हटाएँ।
  • \n
  • getFirst() / peekFirst() — पहला तत्व देखें।

ब्लॉग

पुस्तक अनुशंसाएँ