"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या जावा में कलेक्शन ट्रैवर्सल के लिए एक-प्रत्येक लूप और एक पुनरावृत्ति का उपयोग करने के बीच एक प्रदर्शन अंतर है?

क्या जावा में कलेक्शन ट्रैवर्सल के लिए एक-प्रत्येक लूप और एक पुनरावृत्ति का उपयोग करने के बीच एक प्रदर्शन अंतर है?

2025-04-08 पर पोस्ट किया गया
ब्राउज़ करें:623

Is There a Performance Difference Between Using a For-Each Loop and an Iterator for Collection Traversal in Java?

के लिए यह लेख इन दो दृष्टिकोणों के बीच दक्षता के अंतर की पड़ताल करता है। यह आंतरिक रूप से iterator का उपयोग करता है:

सूची a = new ArrayList (); for (पूर्णांक पूर्णांक: a) { integer.tostring (); }

iterator

यह ट्रैवर्सल प्रक्रिया पर कस्टम नियंत्रण की अनुमति देता है। for (iterator iterator = a.iterator (); iterator.hasnext ();) { पूर्णांक पूर्णांक = iterator.next (); integer.tostring (); … फॉर-एई-एई-लूप आंतरिक रूप से पुनरावृत्ति तंत्र का उपयोग करता है। ऑब्जेक्ट o = list.get (i); … उदाहरण के लिए, एक लिंक की गई सूची में, Get (i) एक O (n) ऑपरेशन है। एक Iterator के O (1) अगला () ऑपरेशन का उपयोग करना O (n) समय में लूप चलाता है, जबकि Get (i) लूप O (n ) समय में चला जाएगा। दोनों दृष्टिकोणों के लिए उत्पन्न bytecode:

for-ae-e-&&& &&&]

List a = new ArrayList();
for (Integer integer : a) {
  integer.toString();
}

aload 1 InvokeInterface java/Util/list.iterator () ljava/util/iterator; एस्टोर 3 ...

iterator

List a = new ArrayList();
for (Iterator iterator = a.iterator(); iterator.hasNext();) {
   Integer integer = iterator.next();
   integer.toString();
}
सूची a = new arrayList (); for (iterator iterator = a.iterator (); iterator.hasnext ();) { पूर्णांक पूर्णांक = iterator.next (); integer.tostring (); }

aload 1 InvokeInterface java/Util/list.iterator () ljava/util/iterator; Astore 2 ...

जैसा कि आप देख सकते हैं, उत्पन्न बायटेकोड समान है, या तो दृष्टिकोण का उपयोग करने में कोई प्रदर्शन दंड का संकेत देता है। विशिष्ट डेटा संरचनाओं के साथ काम करने या कस्टम पुनरावृत्ति व्यवहार की आवश्यकता होने पर पुनरावृत्ति केवल लाभ प्रदान करता है। सादगी और पठनीयता के लिए, फॉर-एई-लूप आमतौर पर पसंदीदा विकल्प है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3