2012-04-18 15 views
51

मुझे इन्ट्स का एक गुच्छा भंडार करने के लिए एक साधारण फीफो लागू कतार की आवश्यकता है (यदि यह जेनेरिक कार्यान्वयन है तो मुझे बहुत बुरा नहीं लगता)।फीफो आधारित कतार कार्यान्वयन?

java.util या ट्रोव/गुवा पुस्तकालय में मेरे लिए पहले से ही बेक किया गया है?

उत्तर

59

हाँ। Queue

LinkedList सबसे मामूली ठोस कार्यान्वयन होने के नाते।

+5

ध्यान दें कि जावाडोक सभी कार्यान्वयन सूचीबद्ध करता है। इसके अलावा, इसके ऊपर दूसरा लिंक 'लिंक्डलिस्ट' –

+2

'लिंक्डलिस्ट' इंटरफ़ेस नहीं है; यह एक स्पष्ट वर्ग है। वैकल्पिक रूप से, 'ArrayDeque' अक्सर तेज़ होता है। –

+0

मुझे किसी भी समय मेरी कतार का आकार बदलने की आवश्यकता नहीं है, elemnts की संख्या हमेशा स्थिर है। –

2

हाँ ये चीजें जावा में अंतर्निहित हैं। बस एक उदाहरण here। जावा में कतारों के बारे में एक Google खोज है, और यह है।

10

ArrayDeque शायद जेडीके में सबसे तेज़ ऑब्जेक्ट-आधारित कतार है; ट्रोव में TIntQueue इंटरफ़ेस है, लेकिन मुझे नहीं पता कि इसके कार्यान्वयन कहां रहते हैं।

+0

हाँ TIntQueue कहीं भी लागू नहीं किया गया है .. –

+5

स्टैक (एलआईएफओ) की बजाय कतार (फीफो) के रूप में कार्य करने के लिए 'ArrayDeque' के लिए, आपको' add' और 'remove' का उपयोग करना चाहिए। यदि आप 'पुश' और' पॉप 'का उपयोग करते हैं, तो यह एक स्टैक के रूप में व्यवहार करता है। (कड़ाई से बोलते हुए, 'निकालें' और 'पॉप' समान हैं, लेकिन चूंकि' जोड़ें/पॉप' या 'पुश/निकालें' जोड़े के रूप में अच्छा नहीं लगता है, इसलिए हम 'एड/निकालें' और 'पुश/पॉप' के साथ जाते हैं। ।) – ADTC

42

यहाँ के उपयोग के लिए उदाहरण कोड है जावा के अंतर्निहित फीफो कतार:

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 
     } 
4

Queue एक अंतरफलक है कि जावा में Collection फैली हुई है। इसमें FIFO आर्किटेक्चर का समर्थन करने के लिए आवश्यक सभी फ़ंक्शन हैं।

ठोस कार्यान्वयन के लिए आप LinkedList का उपयोग कर सकते हैं। लिंक्डलिस्ट Deque लागू करता है जो बदले में Queue लागू करता है। ये सभी java.util पैकेज का हिस्सा हैं।

नमूना उदाहरण के साथ विधि के बारे में विवरण के लिए आप FIFO based Queue implementation in Java देख सकते हैं।

संबंधित मुद्दे