CodeGym /Java Blog /अनियमित /जावा में मैट्रिक्स - 2डी सारणियाँ
John Squirrels
स्तर 41
San Francisco

जावा में मैट्रिक्स - 2डी सारणियाँ

अनियमित ग्रुप में प्रकाशित

जावा में मैट्रिक्स/2डी ऐरे क्या है?

"एक मैट्रिक्स पंक्तियों और स्तंभों की एक निश्चित संख्या में व्यवस्थित संख्याओं का एक संग्रह है।" आमतौर पर ये वास्तविक संख्याएँ होती हैं। सामान्य तौर पर, मैट्रिसेस में जटिल संख्याएँ हो सकती हैं लेकिन सरलता के लिए हम यहाँ केवल पूर्ण संख्याओं का उपयोग करेंगे। आइए नजर डालते हैं कि मैट्रिक्स कैसा दिखता है। यहां 4 पंक्तियों और 4 कॉलम वाले मैट्रिक्स का उदाहरण दिया गया है।जावा में मैट्रिक्स - 2डी सारणियाँ - 2
चित्र 1: एक साधारण 4x4 मैट्रिक्स
जावा में इस मैट्रिक्स का प्रतिनिधित्व करने के लिए, हम 2 आयामी ऐरे का उपयोग कर सकते हैं। एक 2D सरणी में 2 आयाम होते हैं, एक पंक्ति के लिए और दूसरा स्तंभ के लिए। उदाहरण के लिए, यदि आप एक पूर्णांक सरणी int arr[4][4] निर्दिष्ट करते हैं तो इसका मतलब है कि मैट्रिक्स में 4 पंक्तियाँ और 4 कॉलम होंगे। या आप कह सकते हैं कि प्रत्येक पंक्ति के लिए 4 कॉलम होंगे। मैट्रिक्स में कुल आकार / कोशिकाओं की संख्या पंक्तियों * कॉलम = एमएक्सएन = 4x4 = 16 होगी।जावा में मैट्रिक्स - 2डी सारणियाँ - 3
चित्र 2: चित्र 1 में मैट्रिक्स [4] [4] जावा में 2 डी ऐरे के रूप में दर्शाया गया है

2D ऐरे को डिक्लेयर और इनिशियलाइज़ करें

यहाँ कुछ अलग तरीके हैं जो या तो केवल सरणी के आकार की घोषणा करते हैं, या आकार का उल्लेख किए बिना इसे आरंभ करते हैं।

public class Matrices {

	public static void main(String[] args) {

		// declare & initialize 2D arrays for int and string
		int[][] matrix1 = new int[2][2];
		int matrix2[][] = new int[2][3];
           
           //the size of matrix3 will be 4x4
		int[][] matrix3 = { { 3, 2, 1, 7 }, 
					   { 9, 11, 5, 4 }, 
					   { 6, 0, 13, 17 }, 
					   { 7, 21, 14, 15 } };

		String[][] matrix4 = new String[2][2];

           //the size of matrix5 will be 2x3 
           // 3 cols because at max there are 3 columns
		String[][] matrix5 = { { "a", "lion", "meo" },  
				            { "jaguar", "hunt" } };
	}
}

2डी ऐरे ट्रैवर्सल

हम सभी जानते हैं कि जावा में नियमित सरणियों को कैसे पार किया जाता है। 2D सरणियों के लिए यह कठिन भी नहीं है। हम आमतौर पर इसके लिए नेस्टेड 'फॉर' लूप्स का इस्तेमाल करते हैं। कुछ शुरुआती लोग इसे कुछ विदेशी अवधारणा के रूप में सोच सकते हैं, लेकिन जैसे ही आप इसमें गहराई से उतरेंगे आप कुछ अभ्यास के साथ इसे लागू करने में सक्षम होंगे। निम्नलिखित स्निपेट पर एक नज़र डालें। यह आपकी पूरी समझ के लिए केवल प्रत्येक पंक्ति के अनुरूप स्तंभों की संख्या प्रदर्शित करता है।

public class MatrixTraversal {
	public static void main(String[] args) {

	    int[][] matrix = new int[4][4];
	    for (int i = 0; i < matrix.length; i++) 
	    {   
		 // length returns number of rows
		 System.out.print("row " + i + " : ");		
		 for (int j = 0; j < matrix[i].length; j++) 
		 { 
		    // here length returns # of columns corresponding to current row
		    System.out.print("col " + j + "  ");
		 }
	    System.out.println();
	   }
	}
}
उत्पादन
पंक्ति 0: कर्नल 0 कर्नल 1 कर्नल 2 कर्नल 3 पंक्ति 1: कॉलम 0 कॉल 1 कर्नल 2 कर्नल 3 पंक्ति 2: कर्नल 0 कॉल 1 कर्नल 2 कर्नल 3 पंक्ति 3: कॉलम 0 कॉल 1 कर्नल 2 कर्नल 3

जावा में 2D ऐरे कैसे प्रिंट करें?

2डी ऐरे ट्रैवर्सल से परिचित होने के बाद, आइए जावा में 2डी ऐरे को प्रिंट करने के कुछ तरीके देखें।

नेस्टेड "फॉर" लूप का उपयोग करना

जावा में मैट्रिक्स को प्रिंट करने का यह सबसे बुनियादी तरीका है।

public class MatrixTraversal {

    public static void printMatrix(int matrix[][])
    {
        for (int i = 0; i < matrix.length; i++) 
	  {   
	    // length returns number of rows		
	    for (int j = 0; j < matrix[i].length; j++) 
	    { 
	      // here length returns number of columns corresponding to current row
		// using tabs for equal spaces, looks better aligned
		// matrix[i][j] will return each element placed at row ‘i',column 'j'
		System.out.print( matrix[i][j]  + "\t"); 
	     }
	     System.out.println();
	   }
	}
	
	public static void main(String[] args) {

		int[][] matrix = { { 3, 2, 1, 7 }, 
					 { 9, 11, 5, 4 }, 
					 { 6, 0, 13, 17 }, 
					 { 7, 21, 14, 15 } };
		printMatrix(matrix);
	}
}
उत्पादन
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

"प्रत्येक के लिए" लूप का उपयोग करना

जावा में “ foreach लूप ” का उपयोग करके 2D सरणियों को प्रिंट करने का एक और तरीका यहां दिया गया है। यह जावा द्वारा प्रदान किया गया एक विशेष प्रकार का लूप है, जहां int[]row मैट्रिक्स में प्रत्येक पंक्ति के माध्यम से लूप करेगा। जबकि, चर "तत्व" में पंक्ति के माध्यम से स्तंभ अनुक्रमणिका में रखा गया प्रत्येक तत्व होगा।

public class MatrixTraversal {

	public static void printMatrix(int matrix[][]){
		for (int [] row : matrix) 
		{   
			// traverses through number of rows		
			for (int element : row) 
			{ 
				// 'element' has current element of row index
				System.out.print( element  + "\t"); 
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args) {

		int[][] matrix = {  { 3, 2, 1, 7 }, 
					  { 9, 11, 5, 4 }, 
					  { 6, 0, 13, 17 }, 
					  { 7, 21, 14, 15 } };
		printMatrix(matrix);
	}
}
उत्पादन
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15

"Arays.toString ()" विधि का उपयोग करना

जावा में Arrays.toString() विधि, इसे पास किए गए प्रत्येक पैरामीटर को एक सरणी के रूप में परिवर्तित करती है और इसे प्रिंट करने के लिए इसकी निर्मित विधि का उपयोग करती है। हमने खेलने के लिए एक डमी स्ट्रिंग 2डी सरणी बनाई है। पूर्णांक सरणियों के लिए भी यही विधि काम करती है। हम आपको अपने अभ्यास के लिए इसका अभ्यास करने के लिए प्रोत्साहित करते हैं।

import java.util.Arrays;
public class MatrixTraversal {
	public static void printMatrix(String matrix[][]){
	
		for (String[] row : matrix) {
			// convert each row to a String before printing
			System.out.println(Arrays.toString(row));
		}
	}
	
	public static void main(String[] args) {

		String [][] matrix = {  { "Hi, I am Karen" }, 
						{ "I'm new to Java"}, 
						{ "I love swimming" }, 
						{ "sometimes I play keyboard"} };
		printMatrix(matrix);
	}
}
उत्पादन
[हाय, मैं करेन हूं] [मैं जावा में नया हूं] [मुझे तैरना पसंद है] [कभी-कभी मैं कीबोर्ड बजाता हूं]

कोड स्पष्टीकरण

पहले पुनरावृत्ति में, स्ट्रिंग [] पंक्ति "हाय, आई एम करेन" को एक ऐरे के रूप में पढ़ेगी , इसे एक स्ट्रिंग में परिवर्तित करेगी और फिर इसे प्रिंट करेगी। इसी तरह सभी पुनरावृत्तियाँ होंगी। यहां दी गई उपयोगिता यह है कि आपको किसी अनुक्रमणिका (i, j) या नेस्टेड लूप का ट्रैक रखने की आवश्यकता नहीं है।

निष्कर्ष

जावा में 2डी सरणियाँ बहु-आयामी सरणियों में सबसे सरल हैं। इस लेख के अंत तक हम आशा करते हैं कि आप उनका उपयोग करने से नहीं डरेंगे, बल्कि कुछ गंभीर काम के लिए अपनी आस्तीनें चढ़ाने के लिए तैयार हैं। आप अपनी सुविधा के अनुसार इन सभी नमूना कोडों को चला सकते हैं या पंक्ति दर पंक्ति डिबग कर सकते हैं। लेकिन अंत में, हम सलाह देना चाहते हैं (हमेशा की तरह) कि कौशल महान अभ्यास और धैर्य के साथ आता है। आशा है कि आपको Java में 2D Arrays के साथ सीखने का मजेदार अनुभव होगा। आपको कामयाबी मिले!
टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION