लोड हो रहा है...

Java में इटरेट करना

tags नाम का एक ArrayList<String> बनाएँ, oak फिर pine जोड़ें, और for (String t : tags) से सूची पर चलें तथा हर शब्द छापें। Lane.java को कंपाइल करें और java Lane चलाएँ। स्क्रीन पर दो पंक्तियाँ दिखनी चाहिए: oak, फिर pine। लूप का हर पास एक मान छापता है। कलेक्शन के हर मान पर चलना इसी पृष्ठ का पाठ है।

हर मान पर एक बार चलें

HashSet पृष्ठ पर आप बिना लूप के size और contains जाँचते थे। कोर्स में पहले for-each पृष्ठ पर आप स्थिर ऐरे पर चले थे। यह पृष्ठ उसी for-each ढंग से ArrayList पर चलता है, फिर get से indexed walk दिखाता है। कलेक्शन पहले add से बढ़ती है। मान संग्रहीत होने के बाद लूप आता है।
Lane.java खोलें। public क्लास नाम Lane रखें ताकि फ़ाइल नाम से मेल खाए। बचे हुए HashSet, contains, Bin, Desk, और map के put/get डेमो हटा दें। कोई भी Scanner या nextLine भी हटा दें। प्रोग्राम टाइप करने का इंतज़ार नहीं करना चाहिए।
ऊपर के पास, public class Lane के ऊपर लिखें:
import java.util.ArrayList;
main के अंदर सूची बनाएँ और दो शब्द जोड़ें:
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
फिर for-each हेडर और बॉडी लिखें:
for (String t : tags) { System.out.println(t); }
कोलन एलिमेंट टाइप-और-नाम तथा कलेक्शन के बीच बैठता है। हर पास t को अगले शब्द पर सेट करता है। पहले डेमो में काउंटर न लिखें। कंपाइल से पहले सेव करें।

Lane for-each ArrayList

java
import java.util.ArrayList;

public class Lane {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        for (String t : tags) {
            System.out.println(t);
        }
    }
}

जिस फ़ोल्डर में Lane.java है, वहाँ से javac Lane.java चलाएँ। जब कोष्ठक, ब्रेसेस, कोण कोष्ठक, कोलन और सेमीकोलन मेल खाते हैं, javac अपनी कोई पंक्ति नहीं लिखता। फिर java Lane चलाएँ — न java Lane.java, न java ArrayList। रन कमांड से .java अंत हटा दें।
प्रोग्राम को दो पंक्तियाँ छापकर रुकना चाहिए: oak, फिर pine। वह आपसे टाइप नहीं माँगना चाहिए। अगर टर्मिनल कीबोर्ड इनपुट का इंतज़ार करे, तो किसी पुराने अभ्यास का nextLine कॉल अभी फ़ाइल में बचा है। उस कॉल को हटाएँ और निर्माण, दो add पंक्तियाँ, तथा for-each रखें।
रन को एक बार चलाकर देखें। Java Lane.main से शुरू होता है। सूची में oak फिर pine है। पहला पास t को oak पर सेट कर oak छापता है। दूसरा पास t को pine पर सेट कर pine छापता है। फिर लूप खत्म होता है। और कुछ नहीं छापना चाहिए। अगर सिर्फ 2 दिखे, तो आपने मानों पर चलने के बजाय size() छापा। अगर एक पंक्ति [oak, pine] दिखे, तो आपने हर एलिमेंट के बजाय पूरी सूची वस्तु छापी — for-each बॉडी को println(t) रखें। अगर true या leaf दिखे, तो Bin या Desk डेमो अभी चल रहा है — java Lane पर जाएँ।
अगर javac कहे कि ArrayList नहीं मिला, तो import गायब है या क्लास पंक्ति के बाद है। import java.util.ArrayList; को public class Lane के ऊपर ले जाएँ। अगर आप for (String t : tags) बिना ब्रेसेस लिखें और बाद में एक से अधिक बॉडी पंक्ति हों, तो इस पृष्ठ पर बॉडी को ब्रेसेस के अंदर एक println रखें ताकि आकार साफ़ रहे। कोलन के बाद कलेक्शन नाम की वर्तनी आपके बनाई सूची से मेल खानी चाहिए: tags, न कि ऐरे for-each पृष्ठ का बचा slots नाम।

get के साथ indexed walk

दूसरा डेमो उसी सूची पर गिने हुए for और get से चलता है। आप for-each मार्ग के साथ स्लॉट नंबर मार्ग देखते हैं।

Lane indexed get walk

java
import java.util.ArrayList;

public class Lane {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        for (int i = 0; i < tags.size(); i++) {
            System.out.println(tags.get(i));
        }
    }
}

उसी तरह कंपाइल और रन करें। स्क्रीन फिर oak, फिर pine दिखाती है। हेडर i को 0 से शुरू करता है जब तक i < tags.size()। हर बॉडी कॉल tags.get(i) एक स्लॉट पढ़ता है। यह list-methods की get आदत लूप के अंदर है। जब स्क्रीन पर इंडेक्स नंबर की ज़रूरत न हो, for-each फ़ाइल को पहला शिक्षण मार्ग मानें। indexed फ़ाइल रखें ताकि साबित हो कि दोनों walk इस सूची के लिए वही दो पंक्तियाँ छापते हैं। अगर गलती से i को 1 से शुरू करें, तो पहला छापा शब्द pine होगा और oak छूट जाएगा — पूरा walk के लिए i को 0 रखें।
इस पृष्ठ की क्विज़ स्क्रीन के लिए HashSet प्रिंट क्रम पर भरोसा न करें। सेट oak पहले pine का वादा नहीं करते। ArrayList डेमो उन दो पंक्तियों के लिए स्थिर क्रम रखते हैं जिनकी आप अपेक्षा करते हैं। शिक्षण फ़ाइलों के लिए ArrayList पर रहें ताकि क्विज़ स्क्रीन पूर्वानुमेय रहे।

अकेला size walk नहीं है

तीसरी फ़ाइल सिर्फ गिनती छापने की बची आदत दिखाती है। HashSet पृष्ठ पर उपयोगी थी, पर iterating नहीं है।

Lane size only not a walk

java
import java.util.ArrayList;

public class Lane {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        System.out.println(tags.size());
    }
}

वह फ़ाइल 2 छापती है — एक संख्या, शब्द नहीं। इसे सिर्फ विरोध के रूप में उपयोग करें। iterating पाठ की रखी फ़ाइलें हर मान को for-each या indexed get से छापती हैं। दो-पंक्ति स्क्रीन के लिए size-only फ़ाइल को क्विज़ मार्ग के रूप में न भेजें।

ऐरे for-each और HashSet जाँचों से तुलना

पहले for-each int[] या String[] स्लॉट पर चलता था। यहाँ कोलन अभी भी काम करता है, पर दाएँ नाम एक ArrayList है। HashSet पृष्ठ पर size और contains बिना हर मान छापे जवाब देते थे। यह पृष्ठ हर मान छापता है। बचा Bin contains डेमो अलग पाठ है। इस पृष्ठ के लिए Lane को उस for-each के साथ रखें जो oak फिर pine छापता है।
जब पुरानी Bin.java फ़ाइलें पास हों, उन्हें छोड़ दें या तभी हटाएँ जब वे भ्रमित करें कि आप कौन सी क्लास चलाते हैं। इस पाठ की walk फ़ाइल कंपाइल करने के बाद java Lane चलाएँ।

wrappers के लिए क्या बचता है

यह पृष्ठ कलेक्शन मानों पर चलता है। अगला पृष्ठ wrapper प्रकार जैसे Integer को आदिम int के साथ कवर करता है जब कलेक्शनों को ऑब्जेक्ट चाहिए। यहाँ ArrayList पर for-each और indexed get पर रहें। इस पृष्ठ पर wrapper डेमो अनिवार्य न बनाएँ।

wrappers से पहले

आप java.util.ArrayList import कर सकते हैं, oak और pine जोड़ सकते हैं, और for (String t : tags) से हर शब्द छाप सकते हैं। आप for (int i = 0; i < tags.size(); i++) और tags.get(i) से भी चल सकते हैं। Lane.java कंपाइल करें और java Lane चलाएँ। स्क्रीन oak फिर pine दिखाती है। अगला पृष्ठ wrappers है, जहाँ ऑब्जेक्ट प्रकार कलेक्शन भंडारण के लिए आदिमों के साथ खड़े होते हैं।
import रखें। लूप से पहले दोनों add रखें। for-each को पहला शिक्षण walk रखें। ये आदतें आगे बढ़ने से पहले चेकपॉइंट हैं। जब for-each के बाद दोनों पंक्तियाँ छपें, iterating ने इस पाठ का काम कर दिया और आप अगले विषय के लिए तैयार हैं।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

❓
5
प्रश्न
🎯
70%
पास करने के लिए
♾️
∞
समय
🔄
∞
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी