본문 바로가기

JAVA

[WEB]DAY6_2차원 배열

2차원 배열

: 배열 안에 배열이 있는 것
  한 번 접근하면 1차원 배열
  두 번 접근하면 값!
  따라서 대괄호도 2개이며, 첫번째 접근하는 대괄호가
  행이고, 두번째 접근하는 대괄호가 열이다.

 


2차원 배열 선언
     자료형[][] 배열명 = {{값1, 값2,..},{값3, 값4...},...};
     ( 자료형 배열명[][] = {{값1, 값2,..},{값3, 값4...},...};도 가능. )
     자료형[][] 배열명 = new 자료형[행][열];

       □                        (arrData)
      □□                     *(arrData + 행)                =  arrData[행]
□□□ □□□              *(*(arrData + 행) + 열)       =  arrData[행][열]


* 3차원 배열부터는 메모리 낭비가 심해서 잘 사용하지x



- 정방 배열 : 각 행의 열갯수가 모두 같은 배열
- 비정방 배열 : 각 행의 열 갯수가 서로 다른 배열

행의 길이: arrData.length
열의 길이: arrData[행].length

 

 

2차원 배열 사용
     int[] arData = {1, 2, 3};
     int[][] arrData = {{4, 5, 6},{7, 8, 9}};

     arrData[1] = arData;
     1번째 행에 arData가 가지고 있는 주소값으로 교체된다.
     따라서 {7, 8, 9}는 메모리에서 해제된 후
     arData와 arrData[1]은 주소를 공유한다.
     arData[1]을 9로 변경하면 arrData[1][1]도 9 로 변경된다.

2차원 배열에서 한번만 접근하면 1차원 배열의 주소를 담을 공간이다.

 

 


필기