-์๋ฃํ์ด ๊ฐ์ 1์ฐจ์ ๋ฐฐ์ด์ ๋ฌถ์์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ
-1์ฐจ์ ๋ฐฐ์ด์์ ํ, ์ด ๊ฐ๋
์ด ์ถ๊ฐ๋ ๊ฒ
์ ์ธ๋ฐฉ์
์๋ฃํ[][] ๋ฐฐ์ด๋ช
;
์๋ฃํ ๋ฐฐ์ด๋ช
[][];
์๋ฃํ[] ๋ฐฐ์ด๋ช
[];
๋ฐฐ์ด ํ ๋น
์๋ฃํ[][] ๋ฐฐ์ด๋ช
= new ์๋ฃํ[ํํฌ๊ธฐ][์ดํฌ๊ธฐ];
์๋ฃํ ๋ฐฐ์ด๋ช
[][] = new ์๋ฃํ[ํํฌ๊ธฐ][์ดํฌ๊ธฐ];
์๋ฃํ[] ๋ฐฐ์ด๋ช
[] = new ์๋ฃํ[ํํฌ๊ธฐ][์ดํฌ๊ธฐ];
2์ฐจ์ ๋ฐฐ์ด์ ๊ตฌ์กฐ
: 1์ฐจ์ ๋ฐฐ์ด์ ๋ณ์๋ฅผ ๋ฌถ์์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ
: 2์ฐจ์ ๋ฐฐ์ด์ 1์ฐจ์ ๋ฐฐ์ด์ ๋ฌถ์์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ
์ด๊ธฐํ์ํค๊ธฐ
1) ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ ์ด๊ธฐํ
ex) arr[0][0] = 1;
arr[1][1] = 2;
2) for๋ฌธ์ ์ด์ฉํ ์ด๊ธฐํ
ex)
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
arr[i][j] = j;
}
}
3) ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ
ex) int[][] arr = {{1, 2, 3, 4}, {5, 6, 7, 8}};
int[][] arr = new int[][] {{1, 2, 3, 4}, {5, 6, 7, 8}};
String fruit[][] = {{"์ฌ๊ณผ", "๋ธ๊ธฐ", "์๋ฅ"}, {"๋ฐ๋๋", "์ฐธ์ธ", "๋ ๋ชฌ"}};
public class Array2Example {
// 2์ฐจ์ ๋ฐฐ์ด ๋ฐ ์ ์ธ
public void ex1() {
// 2์ฐจ์ ๋ฐฐ์ด ์ ์ธ
int[][] arr;
// int 2์ฐจ์ ๋ฐฐ์ด์ ์ฐธ์กฐํ๋ ์ฐธ์กฐ๋ณ์ ์ ์ธ
// ์ฐธ์กฐํ == ์ฐธ์กฐ ๋ณ์ == ๋ ํผ๋ฐ์ค ๋ณ์ == ๋ ํผ๋ฐ์ค
// 2์ฐจ์ ๋ฐฐ์ด ํ ๋น
// -> new ์๋ฃํ[ํํฌ๊ธฐ][์ดํฌ๊ธฐ]
arr = new int[2][3];
// heap ์์ญ์ int 2์ฐจ์ ๋ฐฐ์ด 2ํ 3์ด ๊ณต๊ฐ์ ํ ๋น
// 2์ฐจ์ ๋ฐฐ์ด ์ด๊ธฐํ
// 1) ํ, ์ด ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ์ง์ ์ด๊ธฐํ
/*
arr [0][0] = 10;
arr [0][1] = 20;
arr [0][2] = 30;
arr [1][0] = 40;
arr [1][1] = 50;
arr [1][2] = 60;
*/
// 2) 2์ค for๋ฌธ์ ์ด์ฉํ ์ด๊ธฐํ
int num = 10; // ๋ฐฐ์ด ์์ ์ด๊ธฐํ์ ์ฌ์ฉํ ๋ณ์
// * ๋ฐฐ์ด ๊ธธ์ด
// -> ๋ฐฐ์ด๋ช
.length๋ ๋ณ์๊ฐ ์ง์ ์ฐธ์กฐํ๊ณ ์๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ฐํ
System.out.println(arr.length); // 2 (ํ๊ธธ์ด)
// arr์ด ์ฐธ์กฐํ๊ณ ์๋ 2์ฐจ์ ๋ฐฐ์ด์ ํ์ ๊ธธ์ด์ด๋ค.
System.out.println(arr[0].length); // 3 (์ด๊ธธ์ด)
// arr์ 0๋ฒ์งธ ์ธ๋ฑ์ค ํ์ด ์ฐธ์กฐํ๊ณ ์๋ 1์ฐจ์ ๋ฐฐ์ด์ ์ด์ ๊ธธ์ด์ด๋ค.
System.out.println(arr[1].length); // 3 (์ด๊ธธ์ด)
// arr์ 1๋ฒ์งธ ์ธ๋ฑ์ค ํ์ด ์ฐธ์กฐํ๊ณ ์๋ 1์ฐจ์ ๋ฐฐ์ด์ ์ด์ ๊ธธ์ด์ด๋ค.
for(int row = 0; row < arr.length; row++) { // ํ ๋ฐ๋ณต (0, 1)
for(int col = 0; col < arr[row].length; col++) {
arr[row][col] = num;
num += 10;
}
}
// Arrays.toString(๋ฐฐ์ด๋ช
) : ์ฐธ์กฐํ๊ณ ์๋ 1์ฐจ์ ๋ฐฐ์ด ๊ฐ์ ๋ฌธ์์ด๋ก ๋ณํ
System.out.println(Arrays.toString(arr));
// Arrays.deepToString(๋ฐฐ์ด๋ช
) :
// ์ฐธ์กฐํ๊ณ ์๋ ๋ชจ๋ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๊ฐ ๋์ค๋ ๋ถ๋ถ๊น์ง ํ๊ณ ๋ค์ด๊ฐ์ ๋ชจ๋ ๊ฐ์ ๋ฌธ์์ด๋ก ๋ณํ
System.out.println(Arrays.deepToString(arr));
// 3)
}
// 2์ฐจ์ ๋ฐฐ์ด ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ
public void ex2() {
// 3ํ 3์ด์ง๋ฆฌ ์ ์ํ 2์ฐจ์๋ฐฐ์ด ์ ์ธ/์ด๊ธฐํ(1~9) ๋์
int[][] arr = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
// ํ ๋ณ๋ก ํฉ ์ถ๋ ฅ
for(int row = 0; row < arr.length; row++) {
int sum = 0;
for(int col = 0; col < arr[row].length; col++) {
sum += arr[row][col];
}
System.out.println(row + "ํ์ ํฉ : " + sum);
}
System.out.println("========================");
// ์ด ๋ณ๋ก ํฉ ์ถ๋ ฅ
// 0์ด์ ํฉ : 12
// 1์ด์ ํฉ : 15
// 2์ด์ ํฉ : 18
for(int col = 0; col < arr[0].length; col++) {
int sum = 0;
for(int row = 0; row < arr.length; row++) {
sum += arr[row][col];
}
System.out.println(col + "์ด์ ํฉ : " + sum);
}
System.out.println("========================");
// ์ ์ฒด ํฉ ์ถ๋ ฅ
// ์ ์ฒด ํฉ : 45
int total = 0;
for(int row = 0; row < arr.length; row++) {
for(int col = 0; col < arr[row].length; col++) {
total += arr[row][col];
}
}
System.out.println("์ ์ฒด ํฉ : " + total);
}
2์ฐจ์ ๋ฐฐ์ด ์์ฑ ์ ๋ง์ง๋ง ๋ฐฐ์ด ์ฐจ์(์ด)์ ์ง์ ํ์ง์๊ณ ๋์ค์ ์๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ 1์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ์ฌ ์ฐธ์กฐํ๋ ๋ฐฐ์ด
ex) int[][] arr = new int[4][];
arr[0] = new int[3];
arr[1] = new int[4];
arr[2] = new int[5];
arr[3] = new int[2];
public void ex3() {
char[][] arr = new char[4][]; // char 2์ฐจ์๋ฐฐ์ด ์์ฑ ์ ํ๋ถ๋ถ๋ง ์์ฑ
arr[0] = new char[3]; // 0ํ์ 3์ด์ง๋ฆฌ 1์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ์ฌ ์ฃผ์๊ฐ ์ ์ฅ
arr[1] = new char[4]; // 1ํ์ 4์ด์ง๋ฆฌ 1์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ์ฌ ์ฃผ์๊ฐ ์ ์ฅ
arr[2] = new char[5]; // 2ํ์ 5์ด์ง๋ฆฌ 1์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ์ฌ ์ฃผ์๊ฐ ์ ์ฅ
arr[3] = new char[2]; // 3ํ์ 2์ด์ง๋ฆฌ 1์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ์ฌ ์ฃผ์๊ฐ ์ ์ฅ
char ch = 'a';
for(int row = 0; row < arr.length; row++) {
for(int col = 0; col < arr[row].length; col++) {
arr[row][col] = ch++;
}
}
System.out.println(Arrays.deepToString(arr));
}