1차 배열은 하나의 []주소값에 하나의 값을 설정할 수 있습니다.
int[] number=new int[];
2차원 배열은 []주소값 마다 []배열을 설정한 것 입니다.
타입[][] 변수이름; = int[][] score;
타입 변수이름[][]; = int score[][];
타임[] 변수이름[]; = int[] score[];
2차원 배열의 예시
메모리는 직선의 형태이지만, 그림으로 나타낸다면, 아래와 같습니다.
4행x3열
0 1 2
0 ㅣ[0][a] ㅣ [0][b] ㅣ [0][c]
1 ㅣ[1][a] ㅣ [1][b] ㅣ [1][c]
2 ㅣ[2][a] ㅣ [2][b] ㅣ [2][c]
3 ㅣ[3][a] ㅣ [3][b] ㅣ [3][c]
2차원 배열의 생성과 초기화
배열 선언 후 초기화
int[][] arr;
arr = new int[3][4]; // 3x4 크기의 int 2차원 배열을 생성. 모든 원소는 기본값 0으로 초기화됨.
선언과 동시에 new 키워드를 사용하여 초기화 (기본값으로 초기화)
int[][] arr = new int[3][4]; // 3x4 크기의 int 2차원 배열을 생성. 모든 원소는 기본값 0으로 초기화됨.
선언과 동시에 초기화
//모든 내부 배열의 길이가 동일한 경우, 3x4 크기의 int 2차원 배열을 생성하고 값으로 초기화.
int[][] arr = /*new int[][]생략*/{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
//내부 배열의 길이가 다른 경우 1,2,3행의 길이가 다른 2차원 배열을 생성하고 값으로 초기화.
int[][] arr = /*new int[][]생략*/{
{1, 2},
{3, 4, 5, 6},
{7, 8, 9}
};
for-each문을 활용한 2차 배열 표현
int[][] arr = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
for (int[] row : arr) { // 각 행에 대해 반복
for (int value : row) { // 해당 행의 각 요소에 대해 반복
System.out.print(value + " ");
}
System.out.println(); // 각 행이 끝나면 줄바꿈
}
//row는 arr의 각 행을 순회하기 위한 임시 변수
결과
1 2 3 4
5 6 7 8
9 10 11 12
가변배열
2차원 배열에서 2번째 배열[][i] ㅡ> [i]의 길이는 첫번째 배열 마다 다르게 설정할 수 있습니다.
int[][] jaggedArr=new int[3][];
jaggedArr[0]=new int[] {1,2,3}; //첫번째 길이 3
jaggedArr[1]=new int[] {4,5}; //두번째 길이 2
jaggedArr[2]=new int[] {6,7,8,9};//세번째 길이 4
가변 2차 배열을 for문으로 출력 방법
for(int i = 0; i < jaggedArr.length; i++){
for(int j = 0; j < jaggedArr[i].length; j++){
System.out.print(jaggedArr[i][j]+" ");
}
System.out.println();
}
가변 2차 배열을 for-each문으로 출력 방법
for (int[] row : jaggedArr) { // 각 행에 대해 반복
for (int value : row) { // 해당 행의 각 요소에 대해 반복
System.out.print(value + " ");
}
System.out.println(); // 한 행의 출력이 끝나면 줄바꿈
}
'Java' 카테고리의 다른 글
[Java/eclipse] Module (class path, module path) (0) | 2023.10.03 |
---|---|
[Java] 생성자 메서드와 this (0) | 2023.10.03 |
[Java] 중첩 for문 (0) | 2023.10.03 |
[Jave] 반복문에서 continue, break 명령어 (0) | 2023.10.03 |
[Java]반복문 (for문, while문, do-while문) (0) | 2023.10.03 |