Java의 매트릭스/2D 배열이란 무엇입니까?
"행렬은 고정된 수의 행과 열로 배열된 숫자의 모음입니다." 일반적으로 이들은 실수입니다. 일반적으로 행렬은 복소수를 포함할 수 있지만 단순화를 위해 여기서는 정수만 사용합니다. 행렬이 어떻게 생겼는지 살펴봅시다. 다음은 4개의 행과 4개의 열이 있는 행렬의 예입니다.

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" } };
}
}
2D 어레이 순회
우리 모두는 Java에서 일반 배열을 탐색하는 방법을 알고 있습니다. 2D 배열의 경우에도 어렵지 않습니다. 이를 위해 일반적으로 중첩된 '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열 : 0열 1열 2열 3열 1열 : 0열 1열 2열 3열 2열 : 0열 1열 2열 3열 3열 : 0열 1열 2열 3열
Java에서 2D 배열을 인쇄하는 방법은 무엇입니까?
2D 배열 순회에 익숙해지면 Java에서 2D 배열을 인쇄하는 몇 가지 방법을 살펴보겠습니다.중첩된 "for" 루프 사용
이것은 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" 루프 사용
다음은 " foreach 루프 " 를 사용하여 Java에서 2D 배열을 인쇄하는 또 다른 방법입니다 . 이것은 Java에서 제공하는 특별한 유형의 루프로, 여기서 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()" 메서드 사용
Java의 Arrays.toString() 메서드는 전달된 모든 매개변수를 단일 배열로 변환하고 내장 메서드를 사용하여 인쇄합니다. 우리는 놀 수 있는 더미 문자열 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);
}
}
산출
[안녕하세요 저는 Karen입니다] [Java를 처음 접합니다] [수영을 좋아합니다] [가끔 키보드를 칩니다]
GO TO FULL VERSION