2012-07-04 16 views
56

मान लीजिए कि मैं ArrayList में 5 तार डालता हूं। ArrayList से सम्मिलन और पुनर्प्राप्ति का आदेश वही होगा?ऐरेलिस्ट सम्मिलन और पुनर्प्राप्ति आदेश

+15

तुम क्यों नहीं कोशिश करो और पता लगाओ? –

+77

एक बार कोशिश करना एक बात है। यह सुनिश्चित करने के लिए एक और है कि यह हर बार एक जैसा होगा। – Suragch

उत्तर

45

नीचे कोड की जाँच करें और इसे चलाने:

Inserted in 'order': 
one 
two 
three 
four 
five 


Inserted out of 'order': 
four 
five 
one 
two 
three 

विस्तृत जानकारी के लिए दस्तावेज़ देखें:

public class ListExample { 

    public static void main(String[] args) { 
     List<String> myList = new ArrayList<String>(); 
     myList.add("one"); 
     myList.add("two"); 
     myList.add("three"); 
     myList.add("four"); 
     myList.add("five"); 

     System.out.println("Inserted in 'order': "); 
     printList(myList); 
     System.out.println("\n"); 
     System.out.println("Inserted out of 'order': "); 

     // Clear the list 
     myList.clear(); 

     myList.add("four"); 
     myList.add("five"); 
     myList.add("one"); 
     myList.add("two"); 
     myList.add("three"); 

     printList(myList); 
    } 

    private static void printList(List<String> myList) { 
     for (String string : myList) { 
      System.out.println(string); 
     } 
    } 
} 

निम्नलिखित उत्पादन उत्पन्न करता है, List (Java Platform SE7)

+0

धन्यवाद। निष्पादित होने पर कोड स्निपेट स्पष्ट रूप से समझाता है। – divinedragon

+5

+1 जावा दस्तावेज़ के लिंक को शामिल करने के लिए जो स्पष्ट रूप से ऑर्डरिंग बताता है। –

+15

नमूना आउटपुट उपयोगी होगा – nilesh

89

हाँ। ArrayList एक अनुक्रमिक सूची है। तो, सम्मिलन और पुनर्प्राप्ति आदेश वही है।

यदि आप पुनर्प्राप्ति के दौरान तत्व जोड़ते हैं, तो ऑर्डर वही नहीं रहेगा।

+0

यदि अंत में ओपी "सम्मिलित" है, तो इसे भी जोड़ना कहा जाता है। –

+3

@ कालाई भाग में बहुत अजीब सलाह ".... या अंत" – Ray

+9

दूसरा बयान मेरे लिए अस्पष्ट है! – Adil

33

यदि आप हमेशा अंत में जोड़ते हैं, तो प्रत्येक तत्व अंत में जोड़ा जाएगा और जब तक आप इसे बदल नहीं लेते तब तक उस तरह बने रहें।

यदि आप हमेशा शुरुआत में सम्मिलित करते हैं, तो प्रत्येक तत्व आपके द्वारा जोड़े गए रिवर्स ऑर्डर में दिखाई देगा।

यदि आप उन्हें बीच में सम्मिलित करते हैं, तो ऑर्डर कुछ और होगा।

0

हाँ यह वही रहता है। लेकिन आसानी से इसका परीक्षण क्यों नहीं करें? एक ArrayList बनाओ, इसे भरें और फिर तत्वों को पुनः प्राप्त करें!

+13

हालांकि यह कोई सबूत नहीं है। – YoTengoUnLCD

+0

वही आदेश परीक्षण के संभावित परिणाम में से एक है। यदि कार्यान्वयन ब्लैकबॉक्स है, तो वही ऑर्डर विशिष्ट मामला हो सकता है। उदाहरण क्रमबद्ध सूची है। यदि आप उचित क्रम में क्रमबद्ध सूची में तत्व जोड़ते हैं तो आप उन्हें क्रमबद्ध क्रम में प्राप्त कर सकते हैं (जो कि केवल एक विशेष मामला है), लेकिन यदि आप उन्हें यादृच्छिक क्रम में जोड़ते हैं तो आप उन्हें आदेश देते हैं। कार्यान्वयन की जांच किए बिना ऐरेलिस्ट का परीक्षण करना सिर्फ यह कहता है कि "शायद सबसे अधिक आदेश वही है"। – simar

6

हाँ, यह हमेशा होगा ऐसे ही बनें। documentation

इस सूची के अंत में निर्दिष्ट तत्व जोड़ता है। पैरामीटर: ई तत्व इस सूची रिटर्न के साथ जोड़ दिया जाना चाहिए: सही है (जैसा कि Collection.add (java.lang.Object द्वारा निर्दिष्ट))

ArrayList add() कार्यान्वयन

public boolean More ...add(E e) { 
    ensureCapacity(size + 1); // Increments modCount!! 
    elementData[size++] = e; 
    return true; 
} 
संबंधित मुद्दे