본문 바로가기
Language/Java

배열 2

by Zayne 2023. 2. 8.

■ enhanced for문

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

for(int i = 0; i < ar.length; i++) {
	System.out.println(ar[i]);
}

위의 for 문을 다음와 같이 구성할 수 있다

for(int e : ar) {
	System.out.println(e);
}

enhanced for문의 구성을 살펴보면 다음과 같다

for(요소 : 배열) {

반복할 문장들

}

배열에는 반복의 대상인 배열의 참조변수가 오게 되고,

요소에는 배열의 요소 하나 하나가 담긴다.

즉,

e = ar[0];
System.out.println(e);

e = ar[1];
System.out.println(e);

.
.
.
.

순으로 enhanced for문이 실행되게 된다.

 

■ 인스턴스 배열을 대상으로 하는 enhanced for문

> 기본 자료형의 값이 아닌 인스턴스의 참조 값인 경우에도 enhanced for문을 활용할 수 있다.

(Box 클래스를 정의했다고 가정한다.)

Box[] ar = new Box[10];

for(Box e : ar) {
	.......
}

 

■ 다차원 배열

> 배열의 논리적 메모리 구조가 2차원 이상의 형태를 보이는 배열

> 예시

int[][] arr2 = new int[3][4];
// 행 3, 열 4 인 int형 2차원 배열의 생성

 

즉, 아래와 같은 배열 구조를 가진다

arr2[0][0] arr2[0][1] arr2[0][2] arr2[0][3]

arr2[1][0] arr2[1][1] arr2[1][2] arr2[1][3]

arr2[2][0] arr2[2][1] arr2[2][2] arr2[2][3]

이때 참조변수 arr2가 참조하는 배열의 형태는 다음과 같다.

arr2[0]

arr2[1]

arr2[2]

그렇기에 arr2.length를 확인하면 길이가 3이 나온다.

그리고 각각의 arr2[0],arr2[1],arr2[2] 가 1차원 배열을 참조하게 된다

arr2[0] → □□□□

arr2[1] → □□□□

arr2[2] → □□□□

그래서 arr2[0].length를 확인하면 길이가 4가 나오게 된다.

 

■ 2차원 배열의 초기화

 

int[][] arr = new int[][] {
	{11, 22, 33},
	{44, 55, 66},
	{77, 88, 99}
};

// 위와 같은 표현
int[][] arr = {
	{11, 22, 33},
	{44, 55, 66},
	{77, 88, 99}
};

'Language > Java' 카테고리의 다른 글

상속 2  (0) 2023.02.10
상속  (0) 2023.02.09
배열  (0) 2023.02.05
StringBuilder 클래스  (0) 2023.02.04
메소드 오버로딩과 String 클래스  (0) 2023.02.04