CodeGym /وبلاگ جاوا /Random-FA /ماتریس در جاوا - آرایه های دو بعدی
John Squirrels
مرحله
San Francisco

ماتریس در جاوا - آرایه های دو بعدی

در گروه منتشر شد

آرایه ماتریکس / دو بعدی در جاوا چیست؟

"ماتریس مجموعه ای از اعداد است که در تعداد ثابتی از ردیف ها و ستون ها مرتب شده اند." معمولا این اعداد واقعی هستند. به طور کلی، ماتریس ها می توانند شامل اعداد مختلط باشند، اما برای سادگی، ما در اینجا فقط از اعداد کامل استفاده می کنیم. بیایید نگاهی به شکل ظاهری یک ماتریس بیندازیم. در اینجا نمونه ای از یک ماتریس با 4 سطر و 4 ستون آورده شده است.ماتریس در جاوا - آرایه های دو بعدی - 2
شکل 1: یک ماتریس ساده 4x4
برای نمایش این ماتریس در جاوا، می توانیم از یک آرایه دو بعدی استفاده کنیم. یک آرایه دوبعدی دو بعد دارد، یکی برای سطر و دیگری برای ستون. به عنوان مثال، اگر یک آرایه صحیح int arr[4][4] را مشخص کنید ، به این معنی است که ماتریس دارای 4 سطر و 4 ستون خواهد بود. یا می توانید بگویید برای هر ردیف 4 ستون وجود دارد. اندازه کل / تعداد سلول ها در یک ماتریس ردیف *ستون = mxn = 4x4 = 16 خواهد بود.ماتریس در جاوا - آرایه های دو بعدی - 3
شکل 2: ماتریس [4][4] در شکل 1 به صورت آرایه دو بعدی در جاوا نشان داده شده است.

یک آرایه دو بعدی را اعلام و راه اندازی کنید

در اینجا چند راه مختلف برای اعلام اندازه آرایه یا مقدار دهی اولیه بدون ذکر اندازه وجود دارد.

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" } };
	}
}

پیمایش آرایه دو بعدی

همه ما می دانیم که چگونه در جاوا از آرایه های معمولی عبور کنیم. برای آرایه های دو بعدی هم سخت نیست. ما معمولاً از حلقه های تو در تو برای این کار استفاده می کنیم. برخی از مبتدیان ممکن است آن را به عنوان یک مفهوم بیگانه تصور کنند، اما به محض اینکه عمیق تر در آن کاوش کنید، می توانید با کمی تمرین آن را پیاده سازی کنید. به قطعه زیر نگاهی بیندازید. این فقط تعداد ستون های مربوط به هر ردیف را برای درک کامل شما نمایش می دهد.

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();
	   }
	}
}
خروجی
سطر صفر

چگونه یک آرایه دو بعدی را در جاوا چاپ کنیم؟

پس از اینکه با پیمایش آرایه دو بعدی آشنا شدید، به چند روش چاپ آرایه های دو بعدی در جاوا می پردازیم.

استفاده از حلقه "for" تودرتو

این ابتدایی ترین راه برای چاپ ماتریس در جاوا است.

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

استفاده از حلقه "for-each".

در اینجا روش دیگری برای چاپ آرایه های دو بعدی در جاوا با استفاده از " حلقه foreach " وجود دارد. این نوع خاصی از حلقه ارائه شده توسط جاوا است، که در آن ردیف int[] در هر ردیف در ماتریس حلقه می‌زند. در حالی که متغیر "عنصر" شامل هر عنصری است که در نمایه ستون از طریق سطر قرار می گیرد.

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);
	}
}
خروجی
[سلام، من کارن هستم] [من تازه وارد جاوا هستم] [من عاشق شنا هستم] [گاهی اوقات صفحه کلید بازی می کنم]

توضیح کد

در اولین تکرار، ردیف[] String "Hi, I am Karen" را به عنوان یک آرایه می خواند ، آن را به یک رشته تبدیل می کند و سپس آن را چاپ می کند. به این ترتیب همه تکرارها انجام خواهند شد. ابزار ارائه شده در اینجا این است که شما نیازی به پیگیری هیچ شاخص (i، j) یا حلقه های تودرتو ندارید.

نتیجه

آرایه های دو بعدی در جاوا ساده ترین آرایه های چند بعدی هستند. تا پایان این مقاله امیدواریم از استفاده از آنها ترسی نداشته باشید، بلکه آماده باشید تا برای کارهای جدی آستین ها را بالا بزنید. شما می توانید تمام این کدهای نمونه را اجرا کنید یا خط به خط را به دلخواه خود اشکال زدایی کنید. اما در پایان، مایلیم (مانند همیشه) توصیه کنیم که مهارت با تمرین و صبر عالی همراه است. امیدوارم تجربه یادگیری سرگرم کننده ای با آرایه های دو بعدی در جاوا داشته باشید. موفق باشید!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION