// 배열에 대한 레퍼런스 변수 선언
int array [];

// 배열 생성 - 저장 공간 할당
array = new int [5];

 

레퍼런스 변수인 array는 int 타입의 5개 원소를 가지는 배열의 주소값이 저장된다.

 

// 레퍼런스 변수 선언과 동시에 초기화된 배열 생성
int array = {1, 2, 3, 4, 5};

 


 

length 필드

자바는 배열을 객체로 다룬다.

그렇기 때문에 배열을 생성할 때 new로 할당해주는 것이다.

배열이 생성되면 이 객체에는 배열의 저장 공간과 함께 배열의 크기 값을 가진 length 필드가 존재한다.

여기서 필드란 멤버 변수를 의미한다. (메소드는 멤버 함수)

int array [] = new int [5];
int size = array.length; //size == 5

 


 

for-each문

int n [] = {1,2,3,4,5};
int sum = 0;

// 배열의 크기를 조건문으로 줘서 배열의 크기만큼 루프 돌기
for(int i=0; i<n.length; i++){
	System.out.println(n[i]);
}

// for-each
for(int k : n){ // n.length번 반복
	sum += k;
}

// 나열 타입에서 for-each
enum Week {월,화,수,목,금};
for (Week day : Week.values()){}

 

for-each문은 기존의 for문을 변형하여, 배열이나 나열의 크기만큼 루프를 돌면서 각 원소를 순차적으로 접근하는데 유용하도록 만든 for문이다.

나열형의 경우는 values()라는 메소드를 사용하여 Week의 각 요소에 접근한다.

 


 

2차원 배열

int array[][] = new int [2][5];
array = { {1,2,3,4,5}, {6,7,8,9,10} };

int size1 = array.length; // 2
int size2 = array[0].length; // 5
int size3 = array[1].length; // 5

 

레퍼런스 변수 array는 array[0], array[1]에 대한 주소값을 저장한다.

2차원 배열에서 행의 원소 array[0], array[1]는 각 행의 1차원 배열에 대한 레퍼런스가 된다.

배열을 초기화할 때 각 행 당 원소 개수를 다르게 할당할 수 있는데, 그게 바로 비정방형 배열이다.

비정방형 배열을 생성하는 방법은 아래처럼 각 열을 따로 생성해주면 된다.

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];

 

 

 

'언어, 프레임워크 > Java' 카테고리의 다른 글

접근 지정자 / final  (0) 2025.02.03
this() / 가비지 컬렉션  (1) 2025.02.03
예외 처리  (0) 2025.01.31
비트 시프트 연산  (0) 2025.01.31
Java 알아보기  (0) 2025.01.21