Matrix / 2D Array ใน Java คืออะไร
“เมทริกซ์คือชุดของตัวเลขที่จัดเรียงเป็นแถวและคอลัมน์ในจำนวนที่แน่นอน” โดยปกติจะเป็นจำนวนจริง โดยทั่วไป เมทริกซ์สามารถมีจำนวนเชิงซ้อนได้ แต่เพื่อความง่าย เราจะใช้เฉพาะจำนวนเต็มในที่นี้ เรามาดูกันว่าเมทริกซ์มีลักษณะอย่างไร นี่คือตัวอย่างของเมทริกซ์ที่มี 4 แถวและ 4 คอลัมน์

ประกาศและเริ่มต้นอาร์เรย์ 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] [ฉันชอบว่ายน้ำ] [บางครั้งฉันก็เล่นคีย์บอร์ด]
GO TO FULL VERSION