1_2차원 배열
package array;
public class ArrayDi0 {
public static void main(String[] args) {
// 2x3 2차원 배열을 만든다.
int[][] arr = new int[2][3]; // 행2, 열3
arr[0][0] = 1; // 0행 0열
arr[0][1] = 2; // 0행 1열
arr[0][2] = 3; // 0행 2열
arr[1][0] = 4; // 1행 0열
arr[1][1] = 5; // 1행 1열
arr[1][2] = 6; // 1행 2열
// 0행 출력
System.out.print(arr[0][0] + " "); // 0행 0열
System.out.print(arr[0][1] + " "); // 0행 1열
System.out.println(arr[0][2] + " "); // 0행 2열
// 1행 출력
System.out.print(arr[1][0] + " "); // 1행 0열
System.out.print(arr[1][1] + " "); // 1행 1열
System.out.print(arr[1][2] + " "); // 1행 2열
}
//
// 1 2 3
// 4 5 6
}
- int [] [] 변수이름 = new int[행의 수][열의 수]와 같이 선언하고 생성한다.
- 변수이름[행][열] 과 같이사용하는데, 먼저 행 번호를 찾고 열번호를 찾는다.
2_배열 리펙토링
package array;
public class ArrayDi1 {
public static void main(String[] args) {
// 2x3 2차원 배열을 만든다.
int[][] arr = new int[2][3]; // 행2, 열3
arr[0][0] = 1; // 0행 0열
arr[0][1] = 2; // 0행 1열
arr[0][2] = 3; // 0행 2열
arr[1][0] = 4; // 1행 0열
arr[1][1] = 5; // 1행 1열
arr[1][2] = 6; // 1행 2열
for (int row = 0; row < 2; row++) {
System.out.print(arr[row][0] + " "); // row 0열
System.out.print(arr[row][1] + " "); // row 1열
System.out.println(arr[row][2] + " "); // row 2열
}
}
//
// 1 2 3
// 4 5 6
}
package array;
public class ArrayDi2 {
public static void main(String[] args) {
// 2x3 2차원 배열을 만든다.
int[][] arr = new int[2][3]; // 행2, 열3
arr[0][0] = 1; // 0행 0열
arr[0][1] = 2; // 0행 1열
arr[0][2] = 3; // 0행 2열
arr[1][0] = 4; // 1행 0열
arr[1][1] = 5; // 1행 1열
arr[1][2] = 6; // 1행 2열
for (int row = 0; row < 2; row++) {
for (int colum = 0; colum < 3; colum++) {
System.out.print(arr[row][colum] + " "); // row행 colum열
}
System.out.println(); // 한 행이 끝나면 라인을 변경한다.
}
}
//
// 1 2 3
// 4 5 6
}
- 이중 for문 사용, 첫번째 for문은 행을 탐색하고 두번째 for문은 열을 탐색한다.
package array;
public class ArrayDi3 {
public static void main(String[] args) {
// 2x3 2차원 배열을 만든다.
int[][] arr = {
{1,2,3},
{4,5,6}
}; // 행2, 열3
for (int row = 0; row < arr.length; row++) { // 쉼표 기준으로 {}2개
for (int colum = 0; colum < arr[row].length; colum++) {
System.out.print(arr[row][colum] + " "); // row행 colum열
}
System.out.println(); // 한 행이 끝나면 라인을 변경한다.
}
}
//
// 1 2 3
// 4 5 6
}
- arr.length는 행의 길이를 뜻한다. inr[][] arr = {}안의 쉼표(,)기준으로 행{}를 2개 가지고 있다.
- arr[row].length는 열의 길이를 뜻한다. 위 예시는 { {1,2,3}, {4,5,6} } 각 열마다 3개의 요소가 있다.
3_배열 생성과 변수 초기화 (변수 선언 간단하게)
package array;
public class ArrayDi3 {
public static void main(String[] args) {
// 2x3 2차원 배열을 만든다.
int[][] arr = {
{1,2,3},
{4,5,6}
}; // 행2, 열3
for (int row = 0; row < 2; row++) {
for (int colum = 0; colum < 3; colum++) {
System.out.print(arr[row][colum] + " "); // row행 colum열
}
System.out.println(); // 한 행이 끝나면 라인을 변경한다.
}
}
//
// 1 2 3
// 4 5 6
}
- int[][] = new int [행][열]; 생략 가능 → int[][] arr = { {} , {} }; 과 같이 초기화 가능, (new int[행][열]; 생략)
4_구조 개선
package array;
public class ArrayDi4 {
public static void main(String[] args) {
// 2x3 2차원 배열을 만든다.
int[][] arr = new int[3][3];// 행2, 열3
int i = 1;
for (int row = 0; row < arr.length; row++) {
for (int colum = 0; colum < arr[row].length; colum++) {
arr[row][colum] = i++;
// System.out.println(i);
}
// System.out.println("");
}
for (int row = 0; row < arr.length; row++) { // 쉼표 기준으로 {}2개
for (int colum = 0; colum < arr[row].length; colum++) {
System.out.print(arr[row][colum] + " "); // row행 colum열
}
System.out.println(); // 한 행이 끝나면 라인을 변경한다.
}
}
//
// 1 2 3
// 4 5 6
}
'백엔드 > Java' 카테고리의 다른 글
[Java]#15 Method (0) | 2023.12.20 |
---|---|
[Java]#14 향상된 For (0) | 2023.12.18 |
[Java]#12 배열(1차원) (1) | 2023.12.18 |
[Java]#11 Scanner (0) | 2023.12.16 |
[Java]#10 형변환, 스코프 (0) | 2023.12.16 |