CodeGym /Java Blog /यादृच्छिक /Java मध्ये अॅरे
John Squirrels
पातळी 41
San Francisco

Java मध्ये अॅरे

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
स्टोरेज रूममध्ये कॅबिनेटची कल्पना करा. त्यांच्यापैकी प्रत्येकाचा स्वतःचा नंबर असतो आणि त्या प्रत्येकामध्ये काही बॅगेज ऑब्जेक्ट साठवले जातात. किंवा वाईन लिस्ट जिथे प्रत्येक प्रकारच्या वाईनला क्रमांक दिलेला असतो आणि तुम्ही तुमच्या पेयाचा नंबर देऊन ऑर्डर करता. किंवा विद्यार्थ्यांची यादी ज्यामध्ये "अॅडम्स" प्रथम क्रमांकावर आणि "झिमर" शेवटच्या स्थानावर नोंदविला गेला आहे. किंवा विमानातील प्रवाशांची यादी, ज्यापैकी प्रत्येकाला क्रमांकित आसन नियुक्त केले आहे. Java मध्ये, अशा संरचनांसह कार्य करण्यासाठी अॅरेचा वापर केला जातो, म्हणजे एकसंध डेटाच्या संच.

कोडजिम कोर्समधील अॅरे

CodeGym वर, तुम्ही Java सिंटॅक्स क्वेस्टच्या लेव्हल 7 वर अॅरेसह काम करण्यास सुरुवात करता. तीन धडे त्यांच्यासाठी समर्पित आहेत, तसेच अॅरेसह कार्य करण्याची तुमची कौशल्ये एकत्रित करण्यासाठी विविध स्तरांवरील 8 कार्ये. परंतु अभ्यासक्रमादरम्यान तुम्हाला अनेक वेळा अॅरे भेटतील (विशेषतः, अॅरे क्लासचा अभ्यास Java कलेक्शन क्वेस्टमध्ये आणि तुमच्या भविष्यातील कामाचा भाग म्हणून केला जाईल.

अॅरे म्हणजे काय?

अॅरे ही डेटा स्ट्रक्चर आहे जी समान प्रकारचे घटक संग्रहित करते. आपण त्यास क्रमांकित पेशींचा संच म्हणून विचार करू शकता. तुम्ही प्रत्येक सेलमध्ये काही डेटा ठेवू शकता (प्रति सेल एक डेटा घटक). विशिष्ट सेलचा नंबर वापरून प्रवेश केला जातो. अॅरेमधील घटकाच्या संख्येला इंडेक्स असेही म्हणतात . Java मध्ये, अॅरे एकसंध असते, म्हणजे त्याच्या सर्व पेशींमध्ये समान प्रकारचे घटक असतात. अशा प्रकारे, पूर्णांकांच्या अॅरेमध्ये फक्त पूर्णांक ( इंट ) असतात, स्ट्रिंग्सचा अॅरे — फक्त स्ट्रिंग्स आणि आम्ही तयार केलेल्या डॉग क्लासच्या उदाहरणांच्या अॅरेमध्ये फक्त डॉग ऑब्जेक्ट्स असतील . दुसऱ्या शब्दांत, Java आम्हाला अॅरेच्या पहिल्या सेलमध्ये पूर्णांक, दुसऱ्यामध्ये स्ट्रिंग आणि तिसऱ्यामध्ये डॉग ठेवू देत नाही.Java मधील अॅरे - 2

अॅरे घोषित करत आहे

तुम्ही अॅरे कसे घोषित करता?

कोणत्याही व्हेरिएबलप्रमाणे, जावामध्ये अॅरे घोषित करणे आवश्यक आहे. हे दोनपैकी एका प्रकारे करता येते. ते समतुल्य आहेत, परंतु पहिला मार्ग Java शैलीशी अधिक सुसंगत आहे. दुसरा सी भाषेचा वारसा आहे: अनेक सी प्रोग्रामर जावावर गेले आणि त्यांच्या सोयीसाठी एक पर्यायी पद्धत ठेवली गेली. सारणी Java मध्ये अॅरे घोषित करण्याचे दोन्ही मार्ग दाखवते:
नाही. अॅरे घोषित करणे, जावा सिंटॅक्स उदाहरणे टिप्पणी
१.
dataType[] arrayName;

int[] myArray;

Object[] 
arrayOfObjects;  
अशा प्रकारे अॅरे घोषित करणे उचित आहे. ही जावा शैली आहे.
2.
dataType arrayName[];

int myArray[];

Object 
arrayOfObjects[];
अ‍ॅरे डिक्लेरेशन मेथड C/C++ कडून इनहेरिट केलेली, Java मध्ये कार्य करते
दोन्ही प्रकरणांमध्ये, dataType हा अॅरेमधील व्हेरिएबल्सचा प्रकार आहे. उदाहरणांमध्ये, आम्ही दोन अॅरे घोषित केले. एक int s संग्रहित करेल आणि दुसरा - ऑब्जेक्ट ऑब्जेक्ट्स. अशा प्रकारे, अॅरे डिक्लरेशनमध्ये नाव आणि प्रकार (अॅरेच्या घटकांचा प्रकार) असतो. ArrayName हे अॅरेचे नाव आहे.

अॅरे तयार करत आहे

तुम्ही अॅरे कसे तयार कराल?

इतर कोणत्याही ऑब्जेक्टप्रमाणे, तुम्ही Java अॅरे तयार करू शकता, म्हणजे नवीन ऑपरेटर वापरून, त्यासाठी मेमरीमध्ये जागा राखून ठेवू शकता . हे असे केले आहे:

new typeOfArray[length]; 
जेथे typeOfArray हा अॅरेचा प्रकार आहे आणि लांबी ही त्याची लांबी (म्हणजे सेलची संख्या) संपूर्ण संख्या ( int) म्हणून व्यक्त केली जाते. पण लक्षात घ्या की येथे आम्ही फक्त अॅरेसाठी मेमरी वाटप केली आहे - आम्ही घोषित अॅरे कोणत्याही पूर्वी घोषित व्हेरिएबलशी जोडलेले नाही. सहसा, अॅरे प्रथम घोषित केले जाते आणि नंतर त्वरित केले जाते, उदाहरणार्थ:

int[] myArray; // Array declaration
myArray = new int[10]; // Create (allocate memory for) an array of 10 ints
येथे आम्ही myArray नावाचा पूर्णांकांचा एक अ‍ॅरे तयार केला आहे , जो कंपाइलरला सूचित करतो की त्यात 10 सेल आहेत (त्यातील प्रत्येकामध्ये पूर्णांक असेल). तथापि, घोषित केल्यावर लगेचच अॅरे तयार करण्यासाठी खालील संक्षिप्त वाक्यरचना वापरणे अधिक सामान्य आहे:

int[] myArray = new int [10]; // Declare the array and allocate memory "in one blow"
कृपया लक्षात ठेवा:नवीन ऑपरेटर वापरून अॅरे तयार केल्यानंतर , त्याच्या सेलमध्ये डीफॉल्ट मूल्ये असतात. अंकीय प्रकारांसाठी (आमच्या उदाहरणाप्रमाणे), डीफॉल्ट मूल्य 0 आहे, बुलियन प्रकारासाठी, ते असत्य आहे आणि संदर्भ प्रकारांसाठी, ते शून्य आहे . अशा प्रकारे, हे विधान अंमलात आणल्यानंतर

int[] myArray = new int[10];
आम्हाला दहा पूर्णांकांचा अॅरे मिळतो आणि जोपर्यंत प्रोग्राम मूल्ये बदलण्यासाठी काही करत नाही तोपर्यंत प्रत्येक सेलमध्ये 0 असते.

तुम्हाला " अॅरे बद्दल काहीतरी " या लेखात अॅरेबद्दल अधिक माहिती मिळेल

Java मध्ये अॅरेची लांबी

आम्ही वर म्हटल्याप्रमाणे, अॅरेची लांबी ही अॅरे ठेवण्यासाठी डिझाइन केलेली घटकांची संख्या असते. अॅरे तयार केल्यानंतर त्याची लांबी बदलता येत नाही. कृपया नोंद घ्याअ‍ॅरे घटकांना Java मध्ये शून्यापासून प्रारंभ करून क्रमांकित केले जाते. अशा प्रकारे, जर आपल्याकडे 10 घटकांचा अॅरे असेल, तर पहिल्या घटकाची अनुक्रमणिका 0 असेल आणि शेवटची अनुक्रमणिका 9 असेल. तुम्ही लांबी व्हेरिएबल Java मधील अॅरे - 3वापरून अॅरेची लांबी मिळवू शकता . उदाहरणार्थ:

int[] myArray = new int[10]; // Create an int array for 10 elements and name it myArray
System.out.println(myArray.length); // Display the array's length, i.e. the number of elements we can put into the array
आउटपुट:

10

अॅरे सुरू करणे आणि त्यातील घटकांमध्ये प्रवेश करणे

आता आपल्याला जावामध्ये अॅरे कसा तयार करायचा हे माहित आहे. प्रक्रियेमुळे आम्हाला रिक्त अॅरे मिळत नाही तर डीफॉल्ट मूल्यांनी भरलेला अॅरे मिळतो. उदाहरणार्थ, इंट अ‍ॅरेसाठी, हे 0 आहे, आणि आमच्याकडे कोणत्याही संदर्भ प्रकाराचा अ‍ॅरे असल्यास, प्रत्येक सेलमधील डीफॉल्ट null आहे . आम्ही अॅरे घटक (उदाहरणार्थ, त्याचे मूल्य सेट करण्यासाठी, स्क्रीनवर प्रदर्शित करण्यासाठी किंवा त्याच्यासह काही ऑपरेशन करण्यासाठी) त्याच्या अनुक्रमणिकेद्वारे प्रवेश करतो. अॅरे इनिशिएलायझेशन ही विशिष्ट मूल्यांसह अॅरे भरण्याची प्रक्रिया आहे (डिफॉल्ट व्यतिरिक्त). उदाहरण: चला 4 सीझनसाठी स्ट्रिंग अॅरे तयार करू आणि ऋतूंच्या नावांसह भरा.

String[] seasons = new String[4]; /* Declare and create an array. Java allocates memory for an array of 4 strings, and each cell is set to null (since String is a reference type) */ 

seasons[0] = "Winter"; /* We set the first cell, i.e. the cell with index zero, to "Winter". Here we access the zeroth element of the array and write a specific value to it. */ 
seasons[1] = "Spring"; // We follow a similar procedure for the cell with index 1 (the second cell)
seasons[2] = "Summer"; // ... index 2
seasons[3] = "Autumn"; // and finally, index 3
आता आपल्या अॅरेच्या चार सेलवर ऋतूंची नावे लिहिली जातात. घोषणा आणि इनिशिएलायझेशन एकत्र करून आम्ही अॅरेला वेगळ्या पद्धतीने आरंभ करू शकतो:

String[] seasons = new String[] {"Winter", "Spring", "Summer", "Autumn"};
आणखी काय, नवीन ऑपरेटर वगळले जाऊ शकते:

String[] seasons = {"Winter", "Spring", "Summer", "Autumn"};

तुम्ही Java मध्ये स्क्रीनवर अॅरे कसे दाखवाल?

तुम्ही फॉर लूप वापरून स्क्रीनवर (म्हणजे कन्सोलवर) अॅरे घटक प्रदर्शित करू शकता . अॅरे दाखवण्याचा आणखी एक छोटा मार्ग " अ‍ॅरेसह काम करण्यासाठी उपयुक्त पद्धती " या शीर्षकाच्या परिच्छेदामध्ये चर्चा केली जाईल . दरम्यान, या उदाहरणावर एक नजर टाका जिथे लूप वापरून अॅरे प्रदर्शित केला जातो:

String[] seasons = new String {"Winter", "Spring", "Summer", "Autumn"}; 
for (int i = 0; i < 4; i++) {
System.out.println(seasons[i]); 
}
कार्यक्रम खालील प्रदर्शित करेल:

Winter 
Spring 
Summer 
Autumn

Java मधील एक-आयामी आणि बहुआयामी अॅरे

पण जर आपल्याला संख्या, स्ट्रिंग किंवा इतर वस्तूंचा अॅरे बनवायचा नसून अॅरेचा अॅरे तयार करायचा असेल तर? Java तुम्हाला हे करू देते. ( int[] myArray = new int[8] ) ज्या क्रमवारीशी आपण आधीच परिचित आहोत त्याला वन-डायमेंशनल अॅरे म्हणून ओळखले जाते. पण अॅरेच्या अॅरेला द्विमितीय अॅरे म्हणतात. हे सारणीसारखे आहे ज्यामध्ये पंक्ती क्रमांक आणि स्तंभ क्रमांक आहे. किंवा, जर तुम्ही रेखीय बीजगणिताची मूलभूत माहिती शिकली असेल, तर तुम्ही त्याचा मॅट्रिक्स म्हणून विचार करू शकता. Java मधील अॅरे - 4आम्हाला अशा अॅरेची गरज का आहे? बरं, मॅट्रिक्स आणि टेबल्स, तसेच समान रचना असलेल्या इतर ऑब्जेक्ट्स प्रोग्राम करण्यासाठी. उदाहरणार्थ, चेसबोर्ड 8x8 अॅरेद्वारे दर्शविला जाऊ शकतो. एक बहुआयामी अॅरे खालीलप्रमाणे घोषित आणि तयार केला आहे:

Int[][] myTwoDimentionalArray = new int[8][8];
या अॅरेमध्ये तंतोतंत ६४ घटक आहेत: myTwoDimentionalArray[0][0] , myTwoDimentionalArray[0][1] , myTwoDimentionalArray[1][0] , myTwoDimentionalArray[1][1] आणि असेच myTwoDimentionalArray[7][7] . म्हणून जर आपण त्याचा वापर चेसबोर्डचे प्रतिनिधित्व करण्यासाठी केला, तर A1 हे myTwoDimentionalArray[0][0] शी संबंधित आहे आणि E2 हे myTwoDimentionalArray[4][1] शी संबंधित आहे . पण आपण याला किती पुढे ढकलू शकतो? Java मध्ये, तुम्ही अ‍ॅरेचा अ‍ॅरे निर्दिष्ट करू शकता... अ‍ॅरेच्या अ‍ॅरेचा अ‍ॅरे इ. अर्थात, त्रिमितीय आणि उच्च-आयामी अॅरे फार क्वचितच वापरले जातात. ते म्हणाले, उदाहरणार्थ, रुबिक क्यूब प्रोग्राम करण्यासाठी तुम्ही त्रिमितीय अॅरे वापरू शकता.

अॅरेसह कार्य करण्यासाठी उपयुक्त पद्धती

अॅरेसह काम करण्यासाठी Java मध्ये java.util.Arrays क्लास आहे. सर्वसाधारणपणे, अॅरेवर केले जाणारे सर्वात सामान्य ऑपरेशन्स म्हणजे इनिशिएलायझेशन (घटकांनी भरणे), घटक पुनर्प्राप्त करणे (इंडेक्सद्वारे), क्रमवारी लावणे आणि शोधणे. अ‍ॅरे शोधणे आणि क्रमवारी लावणे हे दुसर्‍या दिवसासाठी विषय आहेत. एकीकडे, स्वत: अनेक शोध आणि वर्गीकरण अल्गोरिदम लिहिण्याचा चांगला सराव आहे. दुसरीकडे, सर्व उत्कृष्ट अल्गोरिदम आधीपासूनच लागू केले गेले आहेत आणि मानक Java लायब्ररींमध्ये समाविष्ट केले गेले आहेत आणि आपण ते कायदेशीररित्या वापरू शकता. या वर्गातील तीन उपयुक्त पद्धती येथे आहेत.

अॅरेची क्रमवारी लावत आहे

void sort(int[] myArray, int fromIndex, int toIndex) पद्धत चढत्या क्रमाने पूर्णांक अ‍ॅरे किंवा सबअॅरे क्रमवारी लावते.

अॅरेमध्ये घटक शोधत आहे

int binarySearch(int[] myArray, int fromIndex, int toIndex, int की) . ही पद्धत क्रमवारी लावलेल्या myArray अ‍ॅरे किंवा subarray मधील मुख्य घटक शोधते , fromIndex पासून toIndex . जर वस्तू सापडली तर ती त्याची अनुक्रमणिका परत करते. अन्यथा, ते (-fromIndex)-1 परत करते .

अॅरेला स्ट्रिंगमध्ये रूपांतरित करणे

String toString(int[] myArray) पद्धत अॅरेला स्ट्रिंगमध्ये रूपांतरित करते. Java मध्ये, अॅरे स्ट्रिंग() वर अधिलिखित करत नाहीत . याचा अर्थ असा की तुम्ही " स्क्रीनवर अॅरे प्रदर्शित करा " या शीर्षकाच्या परिच्छेदाप्रमाणे एकावेळी एकाच घटकाऐवजी संपूर्ण अॅरे (System.out.println(myArray)) प्रदर्शित करण्याचा प्रयत्न केल्यास , तुम्हाला मिळेल. वर्गाचे नाव आणि अॅरेचे हेक्साडेसिमल हॅश ( Object.toString() द्वारे परिभाषित केलेले ). तुम्ही नवशिक्या असल्यास, तुम्हाला toString पद्धतीचे स्पष्टीकरण समजणार नाही. सुरुवातीला, आपल्याला याची आवश्यकता नाही, परंतु ही पद्धत वापरल्याने अॅरे प्रदर्शित करणे सोपे होते. Java तुम्हाला लूप न वापरता सहजपणे अॅरे दाखवू देते. खालील उदाहरण हे दाखवते.

सॉर्ट, बायनरीसर्च आणि टूस्ट्रिंग वापरण्याचे उदाहरण

पूर्णांकांची अॅरे तयार करू, toString वापरून दाखवू, सॉर्ट पद्धत वापरून क्रमवारी लावू आणि नंतर त्यात काही संख्या शोधू.

class Main {
    public static void main(String[] args) {
        int[] array = {1, 5, 4, 3, 7}; // Declare and initialize the array
        System.out.println(array); // Try to display our array without using the toString method — the result is a hexadecimal number
        System.out.println(Arrays.toString(array)); // Display the array correctly 
        Arrays.sort(array, 0, 4); // Sort the entire array from the zeroth to the fourth element
        System.out.println(Arrays.toString(array)); // Display the sorted array
        int key = Arrays.binarySearch(array, 5); // Look for the number 5 in the sorted array. 
        // The binarySearch method will return the index of the array element we are searching for
        System.out.println(key); // Display the index of the number we searched for 
System.out.println(Arrays.binarySearch(array, 0)); // Now try to find a number that isn't in the array, 
        // and immediately display the result

    }
}
आउटपुट:

[I@1540e19d 
[1, 5, 4, 3, 7] 
[1, 3, 4, 5, 7] 
3 
-1
पहिली स्ट्रिंग म्हणजे toString न वापरता अॅरे प्रदर्शित करण्याचा प्रयत्न . दुसरा toString वापरून प्रदर्शित केलेला अॅरे आहे . तिसरा क्रमबद्ध अॅरे आहे. चौथ्या क्रमांकाचा अनुक्रमणिका आहे आम्ही क्रमवारी केलेल्या अ‍ॅरेमध्ये (5) शोधलेल्या संख्येचा (लक्षात ठेवा की आम्ही शून्यातून मोजतो, त्यामुळे अ‍ॅरेच्या चौथ्या घटकाची अनुक्रमणिका 3 आहे). पाचव्या स्ट्रिंगमध्ये आपण -1 पाहतो. ही अवैध अॅरे इंडेक्स आहे. हे संकेत देते की आम्ही शोधलेला क्रमांक (या प्रकरणात, 0) अॅरेमध्ये नाही.

अॅरे वर्गातील पद्धतींबद्दल अधिक

अॅरे क्लास आणि त्याचा वापर — हा लेख अॅरे क्लासमधील काही पद्धतींचे वर्णन करतो
अॅरे क्लासमध्ये अॅरेसह काम करण्यासाठी 18 महत्त्वाच्या पद्धती आहेत.

थोडक्यात अॅरे

  • अॅरेची आवश्यक वैशिष्ट्ये: त्यात ठेवलेल्या डेटाचा प्रकार, त्याचे नाव आणि त्याची लांबी.
    अॅरे तयार केल्यावर शेवटची प्रॉपर्टी निर्धारित केली जाते (जेव्हा अॅरेसाठी मेमरी वाटप केली जाते). अॅरे घोषित केल्यावर पहिले दोन गुणधर्म निर्धारित केले जातात.

  • अ‍ॅरे आकार (सेलची संख्या) एक इंट असणे आवश्यक आहे

  • अॅरे तयार केल्यानंतर त्याची लांबी बदलणे अशक्य आहे.

  • अॅरे घटक त्याच्या अनुक्रमणिकेद्वारे प्रवेश केला जाऊ शकतो.

  • अ‍ॅरेमधील घटक, Java मधील इतर सर्व गोष्टींप्रमाणे, शून्यापासून क्रमांकित केले जातात.

  • अॅरे तयार केल्यानंतर, ते डीफॉल्ट मूल्यांनी भरले जाते.

  • Java मधील अॅरे C++ मधील अॅरे सारखे नसतात. ते जवळजवळ डायनॅमिक अॅरेसाठी पॉइंटरसारखे आहेत.

अॅरे बद्दल उपयुक्त साहित्य

अॅरे बद्दल अधिक जाणून घेऊ इच्छिता? खालील लेख पहा. या विषयावर बरीच मनोरंजक आणि उपयुक्त सामग्री समाविष्ट आहे.
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION