1. String
अॅरे
मी तुम्हाला अॅरे बद्दल थोडक्यात विहंगावलोकन देऊ इच्छितो String
.
आम्ही आधी म्हटल्याप्रमाणे, अॅरे कोणत्याही प्रकारचा असू शकतो. याचा अर्थ तुम्ही s ची अॅरे तयार करू शकता String
. जर आम्हाला एखादा प्रोग्राम लिहायचा असेल जो "कीबोर्डवरील 10 ओळी वाचतो आणि त्यांना उलट क्रमाने प्रदर्शित करतो," तो कोड कसा दिसेल ते येथे आहे:
|
Scanner ऑब्जेक्ट तयार करा 0 ते 9 पर्यंत 10-एलिमेंट अॅरे ऑब्जेक्ट लूप तयार करा कीबोर्डवरील स्ट्रिंग वाचा आणि अॅरेच्या पुढील सेलमध्ये सेव्ह करा 9 ते 0 पर्यंत लूप अॅरेमधील पुढील सेल प्रदर्शित करा |
कोड फक्त बदलला! अॅरे तयार करताना आम्हाला फक्त int
सह बदलायचे होते . String
बरं, आणि कीबोर्डवरून स्ट्रिंग वाचताना, आम्ही nextInt()
पद्धत देखील सोबत बदलली nextLine()
.
2. String
मेमरीमधील अॅरे
आणि आणखी एक उपयुक्त तथ्य. चला 3 चित्रांचा विचार करूया:
चित्र 1.String
मेमरीमध्ये ऑब्जेक्टची मांडणी कशी केली जाते:
हे चित्र मागील धड्यांमधून घेतले आहे.
कृपया लक्षात घ्या की स्ट्रिंगचा मजकूर व्हेरिएबलमध्ये थेट संग्रहित केला जात नाही: त्यासाठी मेमरीचा एक वेगळा ब्लॉक वाटप केला आहे. व्हेरिएबल String
मजकूर संचयित करणार्या ऑब्जेक्टचा पत्ता (संदर्भ) संग्रहित करते.
चित्र 2. मेमरीमध्ये पूर्णांक अॅरेची मांडणी कशी केली जाते:
हे चित्रही ओळखीचे आहे.
चित्र 3. मेमरीमध्ये स्ट्रिंग अॅरेची मांडणी कशी केली जाते:
डावीकडे एक अॅरे व्हेरिएबल दिसतो ज्याचा प्रकार आहे String[]
(ते अॅरे ऑब्जेक्टचा पत्ता संग्रहित करते).
मध्यभागी, आपल्याकडे String
अॅरे ऑब्जेक्ट आहे.
आणि उजवीकडे स्ट्रिंग ऑब्जेक्ट्स आहेत जे काही मजकूर संग्रहित करतात.
अॅरेचे सेल String
स्वतः स्ट्रिंग्स (स्ट्रिंग ऑब्जेक्ट्सचा मजकूर) साठवत नाहीत. त्याऐवजी, ते त्यांचे पत्ते संग्रहित करतात (त्यांचे संदर्भ). String
व्हेरिएबल्स स्ट्रिंग ऑब्जेक्ट्सचे पत्ते संग्रहित करतात त्याच प्रकारे (जेथे मजकूर संग्रहित केला जातो).
तुम्ही अॅरे सेलची तुलना करता तेव्हा हे विचारात घ्या :
|
10 स्ट्रिंग्सचा अॅरे तयार करा अॅरेमध्ये मूल्ये ठेवा true (संदर्भ समान आहेत) false (संदर्भ समान नाहीत)true (स्ट्रिंग समान आहेत) true (स्ट्रिंग अद्याप समान आहेत) |
3. Java मध्ये जलद अॅरे इनिशिएलायझेशन
अॅरे अतिशय उपयुक्त आहेत, म्हणून Java च्या निर्मात्यांनी त्यांच्यासोबत काम करणे शक्य तितके सोयीस्कर बनवण्याचा प्रयत्न केला.
त्यांनी केलेली पहिली गोष्ट म्हणजे अॅरे इनिशिएलायझेशन सुलभ करणे, ही प्रक्रिया ज्याद्वारे तुम्ही अॅरेची प्रारंभिक मूल्ये पुरवता.
शेवटी, कुठूनतरी वाचलेल्या डेटा व्यतिरिक्त, प्रोग्रामला कार्य करण्यासाठी स्वतःच्या अंतर्गत डेटाची देखील आवश्यकता असते. उदाहरणार्थ, समजा आपल्याला प्रत्येक महिन्याची लांबी अॅरेमध्ये साठवायची आहे. हा कोड कसा दिसू शकतो:
int[] months = new int[12];
months[0] = 31; // January
months[1] = 28; // February
months[2] = 31; // March
months[3] = 30; // April
months[4] = 31; // May
months[5] = 30; // June
months[6] = 31; // July
months[7] = 31; // August
months[8] = 30; // September
months[9] = 31; // October
months[10] = 30; // November
months[11] = 31; // December
परंतु जावाच्या निर्मात्यांचे आभार, हे अधिक संक्षिप्तपणे लिहिण्याचा एक मार्ग आहे:
// Lengths of months of the year
int[] months = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
तुम्ही स्वल्पविरामाने विभक्त केलेल्या अॅरेच्या सर्व मूल्यांची फक्त यादी करू शकता!
सोयीस्कर, बरोबर? पण एवढेच नाही.
जसे घडते, कंपाइलर अॅरेच्या मूल्यांच्या प्रकारावर आधारित कंटेनर (अॅरे ऑब्जेक्ट) चा प्रकार निर्धारित करू शकतो. आणि अॅरेची लांबी निश्चित करण्यासाठी, कर्ली ब्रेसेसमध्ये लिहिलेल्या घटकांची संख्या मोजणे क्षुल्लक आहे.
याचा अर्थ हा कोड आणखी लहान लिहिला जाऊ शकतो:
// Lengths of months of the year
int[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
सौंदर्याची गोष्ट, नाही का? 🙂
याला "फास्ट अॅरे इनिशिएलायझेशन" म्हणतात. तसे, हे इतर प्रकारांसाठी कार्य करते int
...
// Names of months of the year
String[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November ", "December"};
GO TO FULL VERSION