04. 배열(Array) (2)

bbsm·2022년 12월 15일
0

학원 수업 복습

목록 보기
6/36

< 2차원 배열 자료구조

▶ 2차원 배열

: 자료형이 같은 1차원 배열의 묶음으로 배열 안에 다른 배열이 존재
: 2차원 배열은 할당 된 공간마다 인덱스 번호 두개 부여 (앞 번호는 행, 뒷 번호는 열([0][0]))
-> 행, 열 개념 추가

2차원 배열 선언하는 법

int[][] arr;
int arr[][]
int[] arr[]

int 2차원 배열은 참조하는 참조 변수 선언
( 참조형 == 참조변수 == 레퍼런스 변수 == 레퍼런스 )

▶ 2차원 배열 초기화

**1) 행, 열, 인덱스를 이용해서 직접 초기화

arr = new int[2][3];
2차원 배열 할당 -> new자료형 [행크기][열크기]
Heap영역에 int 2차원 배열 2행 3열 공간을 할당

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차원 배열(열)의 길이

for(int row = 0; row < arr.length; row++){ //행 반복(0,1)
for(int col = 0; col < arr[row].length; col++) { //열 반복 (0,1,2)

			arr[row][col] = num;
			num += 10;  // 10씩 증가
		}
	}

출력 할 때

Arrays.toString(배열명) : 참조하고 있는 1차원 배열값을 문자열로 반환
Arrays.deepToString(배열명) : 참조하고있는 배열의 데이터가 나오는 부분까지 파고들어가서 모든 값을 문자열로 반환

3) 선언과 동시에 초기화

int[][] arr = {{1, 2, 3, 4}, {5, 6, 7, 8}};
int[][] arr = new int[][] {{1, 2, 3, 4}, {5, 6, 7, 8}};
String fruit[][] = {{"사과", "딸기", "석류"}, {"바나나", "참외", "레몬"}};


<가변 배열 구조

▶ 가변 배열

: 2차원 배열 생성 시 마지막 배열 차수(열)을 지정하지 않고 나중에 서로 크기가 다른 1차원 배열을 생성하여 참조하는 배열

가변배열 할당
char[][] arr = new char[4(행크기)][];

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차원 배열을 생성하여 주소값 저장

0개의 댓글