मुझे इन्ट्स का एक गुच्छा भंडार करने के लिए एक साधारण फीफो लागू कतार की आवश्यकता है (यदि यह जेनेरिक कार्यान्वयन है तो मुझे बहुत बुरा नहीं लगता)।फीफो आधारित कतार कार्यान्वयन?
java.util
या ट्रोव/गुवा पुस्तकालय में मेरे लिए पहले से ही बेक किया गया है?
मुझे इन्ट्स का एक गुच्छा भंडार करने के लिए एक साधारण फीफो लागू कतार की आवश्यकता है (यदि यह जेनेरिक कार्यान्वयन है तो मुझे बहुत बुरा नहीं लगता)।फीफो आधारित कतार कार्यान्वयन?
java.util
या ट्रोव/गुवा पुस्तकालय में मेरे लिए पहले से ही बेक किया गया है?
हाँ। Queue
LinkedList सबसे मामूली ठोस कार्यान्वयन होने के नाते।
हाँ ये चीजें जावा में अंतर्निहित हैं। बस एक उदाहरण here। जावा में कतारों के बारे में एक Google खोज है, और यह है।
ArrayDeque
शायद जेडीके में सबसे तेज़ ऑब्जेक्ट-आधारित कतार है; ट्रोव में TIntQueue
इंटरफ़ेस है, लेकिन मुझे नहीं पता कि इसके कार्यान्वयन कहां रहते हैं।
हाँ TIntQueue कहीं भी लागू नहीं किया गया है .. –
स्टैक (एलआईएफओ) की बजाय कतार (फीफो) के रूप में कार्य करने के लिए 'ArrayDeque' के लिए, आपको' add' और 'remove' का उपयोग करना चाहिए। यदि आप 'पुश' और' पॉप 'का उपयोग करते हैं, तो यह एक स्टैक के रूप में व्यवहार करता है। (कड़ाई से बोलते हुए, 'निकालें' और 'पॉप' समान हैं, लेकिन चूंकि' जोड़ें/पॉप' या 'पुश/निकालें' जोड़े के रूप में अच्छा नहीं लगता है, इसलिए हम 'एड/निकालें' और 'पुश/पॉप' के साथ जाते हैं। ।) – ADTC
यहाँ के उपयोग के लिए उदाहरण कोड है जावा के अंतर्निहित फीफो कतार:
public static void main(String[] args) {
Queue<Integer> myQ=new LinkedList<Integer>();
myQ.add(1);
myQ.add(6);
myQ.add(3);
System.out.println(myQ); //1 6 3
int first=myQ.poll();// retrieve and remove the first element
System.out.println(first);//1
System.out.println(myQ);//6 3
}
Queue
एक अंतरफलक है कि जावा में Collection
फैली हुई है। इसमें FIFO
आर्किटेक्चर का समर्थन करने के लिए आवश्यक सभी फ़ंक्शन हैं।
ठोस कार्यान्वयन के लिए आप LinkedList
का उपयोग कर सकते हैं। लिंक्डलिस्ट Deque
लागू करता है जो बदले में Queue
लागू करता है। ये सभी java.util
पैकेज का हिस्सा हैं।
नमूना उदाहरण के साथ विधि के बारे में विवरण के लिए आप FIFO based Queue implementation in Java देख सकते हैं।
ध्यान दें कि जावाडोक सभी कार्यान्वयन सूचीबद्ध करता है। इसके अलावा, इसके ऊपर दूसरा लिंक 'लिंक्डलिस्ट' –
'लिंक्डलिस्ट' इंटरफ़ेस नहीं है; यह एक स्पष्ट वर्ग है। वैकल्पिक रूप से, 'ArrayDeque' अक्सर तेज़ होता है। –
मुझे किसी भी समय मेरी कतार का आकार बदलने की आवश्यकता नहीं है, elemnts की संख्या हमेशा स्थिर है। –