CodeGym /จาวาบล็อก /สุ่ม /เมทริกซ์ใน Java - อาร์เรย์ 2 มิติ
John Squirrels
ระดับ
San Francisco

เมทริกซ์ใน Java - อาร์เรย์ 2 มิติ

เผยแพร่ในกลุ่ม

Matrix / 2D Array ใน Java คืออะไร

“เมทริกซ์คือชุดของตัวเลขที่จัดเรียงเป็นแถวและคอลัมน์ในจำนวนที่แน่นอน” โดยปกติจะเป็นจำนวนจริง โดยทั่วไป เมทริกซ์สามารถมีจำนวนเชิงซ้อนได้ แต่เพื่อความง่าย เราจะใช้เฉพาะจำนวนเต็มในที่นี้ เรามาดูกันว่าเมทริกซ์มีลักษณะอย่างไร นี่คือตัวอย่างของเมทริกซ์ที่มี 4 แถวและ 4 คอลัมน์เมทริกซ์ใน Java - อาร์เรย์ 2 มิติ - 2
รูปที่ 1: เมทริกซ์ 4x4 อย่างง่าย
เพื่อแสดงเมทริกซ์นี้ใน Java เราสามารถใช้ 2 Dimensional Array อาร์เรย์ 2 มิติมี 2 มิติ หนึ่งมิติสำหรับแถวและอีกมิติหนึ่งสำหรับคอลัมน์ ตัวอย่างเช่น หากคุณระบุอาร์เรย์จำนวนเต็มint arr[4][4]นั่นหมายความว่าเมทริกซ์จะมี 4 แถวและ 4 คอลัมน์ หรือคุณสามารถบอกว่าสำหรับแต่ละแถวจะมี 4 คอลัมน์ ขนาด/จำนวนเซลล์ทั้งหมดในเมทริกซ์จะเป็นแถว*คอลัมน์ = mxn = 4x4 = 16เมทริกซ์ใน Java - อาร์เรย์ 2 มิติ - 3
รูปที่ 2: เมทริกซ์[4][4] ในรูปที่ 1 แสดงเป็น 2D Array ใน Java

ประกาศและเริ่มต้นอาร์เรย์ 2 มิติ

ต่อไปนี้คือวิธีต่างๆ ในการประกาศเฉพาะขนาดของอาร์เรย์ หรือเริ่มต้นโดยไม่ระบุขนาด

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 มิติ

เราทุกคนรู้วิธีสำรวจอาร์เรย์ปกติใน Java สำหรับอาร์เรย์ 2 มิติก็ไม่ใช่เรื่องยากเช่นกัน เรามักจะใช้ลูป 'for' ที่ซ้อนกันสำหรับสิ่งนี้ ผู้เริ่มต้นบางคนอาจคิดว่ามันเป็นแนวคิดของมนุษย์ต่างดาว แต่ทันทีที่คุณเจาะลึกลงไป คุณจะสามารถนำสิ่งนี้ไปใช้ได้ด้วยการฝึกฝนบางอย่าง ดูตัวอย่างต่อไปนี้ โดยจะแสดงเฉพาะจำนวนคอลัมน์ที่สอดคล้องกับแต่ละแถวเพื่อให้คุณเข้าใจอย่างถ่องแท้

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 : col 0 col 1 col 2 col 3 แถว 1 : col 0 col 1 col 2 col 3 แถว 2 : col 0 col 1 col 2 col 3 แถว 3 : col 0 col 1 col 2 col 3

จะพิมพ์อาร์เรย์ 2 มิติใน Java ได้อย่างไร

หลังจากที่คุณคุ้นเคยกับ 2D Array Traversal แล้ว มาดูวิธีสองสามวิธีในการพิมพ์ 2D Arrays ใน Java

ใช้การวนซ้ำ "สำหรับ" ที่ซ้อนกัน

นี่เป็นวิธีพื้นฐานที่สุดในการพิมพ์เมทริกซ์ใน Java

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"

ต่อไปนี้เป็นอีกวิธีในการพิมพ์อาร์เรย์ 2 มิติใน Java โดยใช้ " foreach loop " นี่คือการวนซ้ำประเภทพิเศษที่ Java จัดทำขึ้น โดยที่แถว 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()ใน Java แปลงทุกพารามิเตอร์ที่ส่งไปยังมันเป็นอาร์เรย์เดียวและใช้วิธีการในตัวเพื่อพิมพ์ เราได้สร้างอาร์เรย์ String 2D จำลองขึ้นมาเพื่อทดลองเล่น วิธีเดียวกันนี้ใช้ได้กับอาร์เรย์จำนวนเต็มด้วย เราขอแนะนำให้คุณฝึกฝนเพื่อการออกกำลังกายของคุณ

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);
	}
}
เอาต์พุต
[สวัสดี ฉันชื่อคาเรน] [ฉันเพิ่งเริ่มใช้ Java] [ฉันชอบว่ายน้ำ] [บางครั้งฉันก็เล่นคีย์บอร์ด]

คำอธิบายรหัส

ในการวนซ้ำครั้งแรกแถว String[]จะอ่านว่า“สวัสดี ฉันคือชาวกะเหรี่ยง”เป็นอาร์เรย์ แปลงเป็นสตริงแล้วพิมพ์ออกมา นั่นคือวิธีการวนซ้ำทั้งหมดจะเกิดขึ้น ยูทิลิตี้ที่ให้ไว้ในที่นี้คือคุณไม่จำเป็นต้องติดตามดัชนีใดๆ (i, j) หรือลูปที่ซ้อนกัน

บทสรุป

อาร์เรย์ 2 มิติใน Java เป็นอาร์เรย์หลายมิติที่เรียบง่ายที่สุด ในตอนท้ายของบทความนี้ เราหวังว่าคุณจะไม่กลัวที่จะใช้มัน แต่พร้อมที่จะพับแขนเสื้อของคุณสำหรับงานหนักๆ คุณสามารถเรียกใช้โค้ดตัวอย่างเหล่านี้ทั้งหมดหรือดีบักทีละบรรทัดตามความสะดวกของคุณ แต่สุดท้ายแล้ว เราอยากแนะนำ (เช่นเคย) ว่าทักษะนั้นมาพร้อมกับการฝึกฝนและความอดทนที่ดี หวังว่าคุณจะสนุกกับประสบการณ์การเรียนรู้ด้วย 2D Arrays ใน Java ขอให้โชคดี!
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION