Java में Wrapper प्रकार
nums नाम का एक ArrayList<Integer> बनाएँ, nums.add(9); फिर nums.add(4); कॉल करें, और nums.get(0) प्रिंट करें। Crate.java को कंपाइल करें और java Crate चलाएँ। स्क्रीन पर एक पंक्ति दिखनी चाहिए: 9। कोणीय कोष्ठक में Integer है, int नहीं। सूची में पूर्ण संख्याएँ Wrapper प्रकार से रखना — ताकि संग्रह ऑब्जेक्ट रख सके — यही इस पृष्ठ का पाठ है।
सूची को Integer क्यों चाहिए
iterating पृष्ठ पर सूची String शब्द रखती थी। ArrayList ऑब्जेक्ट संग्रहीत करता है। आदिम प्रकार int ऑब्जेक्ट नहीं है। Wrapper प्रकार Integer पूर्ण संख्या का ऑब्जेक्ट रूप है। कोणीय कोष्ठक के अंदर आप Integer लिखते हैं। जब आप add(9) करते हैं, Java इस पृष्ठ पर आदिम 9 को आपके लिए Integer में बॉक्स कर सकती है। वह शांत बॉक्सिंग शिक्षण फ़ाइल के लिए पर्याप्त है।
Crate.java खोलें। सार्वजनिक क्लास नाम Crate रखें ताकि फ़ाइल नाम से मेल खाए। बचे हुए for (String t : tags), oak और pine के add, Lane डेमो, और कोई भी बचा HashSet या map हटाएँ। कोई भी Scanner या nextLine भी हटाएँ। प्रोग्राम को टाइपिंग का इंतज़ार नहीं करना चाहिए।
ऊपर के पास, public class Crate के ऊपर लिखें:
import java.util.ArrayList;
main के अंदर सूची बनाएँ:
ArrayList<Integer> nums = new ArrayList<Integer>();
ArrayList<int> न लिखें — javac उस आकार को अस्वीकार करता है। इस पृष्ठ पर निर्माण पंक्ति के दोनों ओर Integer रखें। फिर बिना उद्धरण दो पूर्ण संख्याएँ जोड़ें:
nums.add(9);
nums.add(4);
फिर लिखें:
System.out.println(nums.get(0));
स्लॉट शून्य में 9 है। कंपाइल से पहले सहेजें।
import java.util.ArrayList;
public class Crate {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(9);
nums.add(4);
System.out.println(nums.get(0));
}
}
जिस फ़ोल्डर में Crate.java है वहाँ से javac Crate.java चलाएँ। जब कोष्ठक, ब्रेसेस, कोणीय कोष्ठक और अर्धविराम मेल खाते हैं, javac अपनी कोई पंक्ति नहीं लिखता। फिर java Crate चलाएँ — न java Crate.java, और न java Integer। रन कमांड से .java अंत हटाएँ।
प्रोग्राम को एक पंक्ति प्रिंट कर रुकना चाहिए: 9। उसे आपसे टाइप नहीं माँगना चाहिए। यदि टर्मिनल कीबोर्ड इनपुट का इंतज़ार करे, तो पुराने अभ्यास का कोई nextLine कॉल अभी भी किसी फ़ाइल में है। उस कॉल को हटाएँ और ArrayList<Integer> निर्माण, दो add पंक्तियाँ, और System.out.println(nums.get(0)); रखें।
रन को एक बार घूमें। Java Crate.main से शुरू होती है। सूची दो बॉक्स की गई पूर्ण संख्याओं से बढ़ती है। कॉल get(0) पहला Integer लौटाता है। प्रिंट पंक्ति 9 लिखती है। स्क्रीन 9 दिखाती है। और कुछ प्रिंट नहीं होना चाहिए। यदि आप oak या pine देखें, तो अभी भी Lane का iterating डेमो चल रहा है — java Crate पर जाएँ। यदि आप 4 देखें, तो आपने गलती से get(1) प्रिंट किया; शिक्षण फ़ाइल के लिए get(0) रखें। यदि आप [9, 4] देखें, तो आपने स्लॉट शून्य की जगह पूरी सूची ऑब्जेक्ट प्रिंट की — क्विज़ पथ के लिए println(nums.get(0)) रखें।
यदि javac ArrayList<int> अस्वीकार करे, तो कोष्ठक Integer में बदलें। वही त्रुटि इस पाठ के प्रकार नियम का पूरा बिंदु है; कोष्ठक ठीक करें और फिर कंपाइल करें। यदि आप उद्धरण के साथ nums.add("9"); लिखें, तो आप String जोड़ रहे हैं, और ArrayList<Integer> के लिए javac मना करता है। इस पृष्ठ पर नंगे अंक रखें। यदि import गायब है, javac ArrayList नहीं ढूँढ पाता — क्लास के ऊपर import java.util.ArrayList; रखें। बड़े I वाला Integer महत्त्वपूर्ण है; कोष्ठक में integer उस Wrapper प्रकार से मेल नहीं खाता जो Java यहाँ चाहती है।
साधारण int में Unbox
दूसरा डेमो पहले मान को आदिम int चर में पढ़ता है, फिर उस चर को प्रिंट करता है। Java इस असाइनमेंट पर आपके लिए Integer को अनबॉक्स करती है।
import java.util.ArrayList;
public class Crate {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(9);
nums.add(4);
int n = nums.get(0);
System.out.println(n);
}
}
उसी तरह कंपाइल और चलाएँ। स्क्रीन अभी भी 9 दिखाती है। पंक्ति int n = nums.get(0); Wrapper मान को साधारण int के रूप में निकालती है। इस शुरुआती पथ पर आपको intValue() कॉल करने की ज़रूरत नहीं। पहली शिक्षण फ़ाइल को सीधे println(nums.get(0)) आकार में रखें। unbox फ़ाइल से देखें कि आदिम चर वह रख सकता है जो सूची ने Integer के रूप में संग्रहीत किया। नाम n बिल्कुल जैसा दिखाया गया है रखें ताकि प्रिंट पंक्ति छोटी रहे। इस दूसरी फ़ाइल में String टैग पर for-each न मिलाएँ — संख्या सूची और एक int असाइनमेंट के साथ रहें।
साथ-साथ
एक छोटी तालिका प्रकार नियम को स्पष्ट रखती है।
📊 int vs Integer for lists
| Piece | On this page |
|---|---|
| list type | ArrayList<Integer> |
| illegal | ArrayList<int> — not allowed |
| add | nums.add(9); — boxes to Integer |
| read | nums.get(0) prints 9; may unbox to int n |
तालिका केवल याद दिलाने के लिए है। जो टाइप किए टुकड़े आप रखते हैं वे import, ArrayList<Integer>, दो add, और get(0) हैं। |
String सूचियों और अकेले आदिम से तुलना
iterating पृष्ठ पर ArrayList<String> शब्द रखता था। वह अभी भी काम करता है। यह पृष्ठ तत्व प्रकार को Integer पर बदलता है ताकि पूर्ण संख्याएँ सूची में बैठ सकें। बचा हुआ Lane for-each जो oak और pine प्रिंट करता है दूसरा पाठ है। इस पृष्ठ के लिए Crate रखें और get(0) से 9 प्रिंट करें।
अकेला int x = 9; अभी भी बिना किसी सूची के काम करता है। Wrapper तब मायने रखते हैं जब संग्रह API कोणीय कोष्ठक में ऑब्जेक्ट प्रकार माँगे। अन्य Wrapper बाद में वही विचार अपनाते हैं — double के साथ Double, boolean के साथ Boolean — पर यह पृष्ठ Integer और int रखता है ताकि स्क्रीन एक स्पष्ट संख्या रहे। आज हर Wrapper नाम याद रखने की ज़रूरत नहीं; एक बार पैटर्न Integer के साथ int और अवैध ArrayList<int> आकार से सीखें।
जब पुरानी Lane.java फ़ाइलें पास हों, उन्हें छोड़ दें या केवल तब हटाएँ जब वे भ्रमित करें कि आप कौन-सी क्लास चला रहे हैं। इस पाठ की Wrapper सूची कंपाइल करने के बाद java Crate चलाएँ। Collections पथ यहाँ स्क्रीन पर उस स्पष्ट 9 के साथ समाप्त होता है, इससे पहले कि कोर्स त्रुटियों और फ़ाइलों की ओर मुड़े।
exceptions के लिए क्या बचता है
यह पृष्ठ Collections मॉड्यूल की सूची में पूर्ण संख्याओं के लिए Wrapper ज़रूरत बंद करता है। अगला मॉड्यूल exceptions के साथ त्रुटियाँ खोलता है। यहाँ इस पृष्ठ पर ArrayList<Integer> और get(0) के साथ रहें। इस पृष्ठ पर try या catch को आवश्यकता न बनाएँ।
exceptions से पहले
आप java.util.ArrayList import कर सकते हैं, ArrayList<Integer> nums बना सकते हैं, 9 और 4 जोड़ सकते हैं, और nums.get(0) प्रिंट कर 9 देख सकते हैं। आप int n में unbox भी कर सकते हैं। Crate.java कंपाइल करें और java Crate चलाएँ। Wrapper प्रकार ने सूची को पूर्ण संख्याएँ रखने दी। अगला पृष्ठ exceptions है, जहाँ प्रोग्राम समस्याएँ संकेत करता है और संभालता है।
कोणीय कोष्ठक में Integer रखें। बिना उद्धरण संख्या add रखें। शिक्षण स्क्रीन 9 के लिए get(0) रखें। वे तीन आदतें आगे बढ़ने से पहले जाँच-बिंदु हैं। जब Crate.java की साफ़ कंपाइल के बाद स्क्रीन Integer सूची से 9 दिखाए, wrappers ने इस पाठ का काम कर दिया और आप अगले विषय के लिए तैयार हैं।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी