본문 바로가기

자바

3-2. 배열

* 배열 선언 및 생성

 

int A [] ;       //레퍼런스 변수 생성  - 배열이 실제로 생성된 것이 아니라 배열의 주소값이 들어 갈 변수가 만들어 진것,

A = new int [5];     //실제적으로 5개 원소를 갖는배열이 생성됨

 

 

 

int A [] = new int [5];

int[] A = new int [5];

int A []  = {1,2,3,4,5};

 

 

 

 

- 두 개의 레퍼런스 변수가 같은 배열을 가리킬 수 있음

 

 

* 배열의 크기, length 필드

 

-자바에서 배열은 하나의 객체처럼 다루어 진다.

 

int size = A.length;  //위에 5개짜리로 배열을 생성했으므로 5값이 들어간다.

 

 

즉, A라는 레퍼런스 변수가 가리키는 객체의 덩어리 안에 1. 배열 , 2. length라는 필드(C언어로 치면 구조체에서 멤버 변수와 비슷한 개념인 듯)가 있음

 

 

 

 

 

 

*배열과 for-each 문

 

3개의 예시로 이해를 대신

 

int [] num = {1,2,3,4,5};

int sum = 0;

 

for(int k : num)         //k값이 차례로 num[0]~num[4]까지 값으로 설정됨

sum += k ;

 

 

String names[ ]  = {"사과", "배", "바나나"};

 

for(String s : names)

System.out.print(s+" ") ;         // " "는 공백때문에 넣음

 

 

enum Weekend {토, 일};

 

for (Week day: Weekend.values( ))

System.out.print(day+"요일") ;

 

 

 

*다차원 배열

 

-2차원 배열

 

예시로 설명하겠다.

 

int i [ ][ ] = new int [2][5];

int size1= i. length;     // 2       //나는 10이 아닐까 생각했었는데 행의 개수를 출력한다고 한다. 

int size2= i[0].length;   // 5

int size3= i[1].lenght;   // 5

 

 

 

 

 

*비정방형 배열     //정방형은 직사각형 형태 였음

 

 

계단형으로 배열을 만들고 싶다면

 

int i [][];

i = new int [4][] ;

 

i[0] = new int [1];

i[1] = new int [2];

i[2] = new int [3];

i[3] = new int [4];

 

 

초기화 하면서 비정방형으로 배열을 만들고 싶다면

 

int i [][] = { {0}. {1,2}, {3,4,5}, {6,7,8,9} };

 

 

반복구문을 사용할 때 length를 이용하면 코딩에 용이해짐.

 

 

 

*메소드 배열 리턴 - 레퍼런스가 리턴 됨

 

 

int[] makeArray() {

int temp [] = new int [4];

return temp

}

포인트는 리턴타입의 형태가 "변수타입[ ]( ex - int[ ] )" 꼴이라는 것과 return에 "레퍼런스이름(ex- temp)"이 들어가는 것