상세 컨텐츠

본문 제목

[JAVA] 배열(Array)

프로그래밍/JAVA

by 으노로 2020. 6. 17. 13:30

본문

안녕하세요.

이번에는 배열을 공부해보겠습니다.

 

배열은 같은 자료형의 변수 여러 개를 하나의 묶음으로 다루는 것으로

개별적으로 저장해서 사용해야 하는 변수들을 배열을 사용하면 한꺼번에 저장과 사용이 가능합니다.

배열에 저장된 값은 순서대로 인덱스 번호가 정해지고 인덱스 번호는 1이 아닌 0부터 시작입니다.

배열도 변수처럼 선언을 해주어야 하는데 배열의 선언은 자료형 혹은 배열명 뒤에 대괄호([ ])를 붙여서 선언하게 됩니다.

배열을 선언한 후에는 할당을 해주어야 하는데 할당이란 배열의 크기를 정하는 것입니다.

배열의 할당은 선언한 배열명 뒤에 = new 자료형[배열크기];의 형식으로 할당하게 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 배열(Array)
// 배열의 선언
// 자료형[] 배열명;
// 자료형 배열명[];
int[] iArr;
int iArr[];
 
// 배열의 할당
// 배열명 = new 자료형[배열의 크기];
iArr = new int[5];
 
// 배열의 선언과 동시에 할당
// 자료형[] 배열명 = new 자료형[배열의 크기];
// 자료형 배열명[] = new 자료형[배열의 크기];
int[] iArr = new int[5];
int iArr[] = new int[5];

동시에 배열의 선언과 할당을 해줄 수도 있고 배열의 선언을 한 뒤에 나중에 할당할 수도 있습니다.

배열을 선언하고 할당하고 초기화를 하지 않으면 자동적으로 초기값이 저장되는데

논리형 배열에는 false로 저장되고 정수형 배열에는 0이 저장되고 실수형 배열에는 0.0이 저장되고

문자형 배열에는 공백이 저장되고 문자열형 배열에는 null이 초기값으로 저장됩니다.

이런 식으로 값이 저장되기 때문에 배열의 선언과 할당을 한 후에는 초기화를 해줘야 합니다.

배열의 초기화란 배열을 사용하기 전에 처음으로 값을 입력하여 저장하는 것입니다.

배열의 초기화를 하는 방법에는 배열을 선언하고 할당한 뒤에 인덱스 하나하나 값을 저장하는 방법이 있고

배열의 선언과 동시에 초기화하는 방법이 있습니다. 이 경우에는 순서대로 인덱스 값이 정해집니다.

그리고 반복문을 이용한 초기화 방법이 있는데 저는 for문을 사용하였습니다.

인덱스의 처음인 0을 초기값으로 잡고 배열의 길이(fArr.length)를 조건식으로 정하고 인덱스의 값을 저장하였습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 배열의 초기화
// 배열의 선언과 동시에 할당
int[] iArr = new int[5];
 
// 배열의 초기화
iArr[0= 10;
iArr[1= 20;
iArr[2= 30;
iArr[3= 40;
iArr[4= 50;
 
// 배열의 선언과 동시에 초기화
String sArr[] = {"가""나""다""라""마"};
 
// 반복문(for문)을 이용한 배열의 초기화
int fArr[] = new int[5];
 
for(int = 0; i < fArr.length; i++)
{
    fArr[i] = i;
}

초기화를 하는 방법 중에 보통은 인덱스 값에 하나씩 저장해주거나 선언과 동시에 초기화를 하지만

반복되는 많은 수를 저장할 때에는 반복문을 사용하여 초기화하는 방법이 더 편리하고 간단합니다.

 

배열이 변수와 다른 점이 있는데 변수의 경우에는 Stack영역에 직접적으로 변수의 값이 저장되고

배열은 저장된 값이 Heap영역에 저장되고 Stack영역에는 Heap영역의 주소 값을 가지고 있습니다.

따라서 배열의 불러오려면 Stack영역에 저장된 배열의 주소 값에 따라서 Heap영역으로 이동한 뒤에

Heap영역에 저장된 배열의 값을 불러오게 됩니다.

 

배열은 참조형 타입이기 때문에 배역을 출력하는 출력문도 일반적인 출력문과 다릅니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 배열의 출력
// 배열의 주소값 출력
System.out.println(iArr);
System.out.println(iArr.toString());
 
// 배열의 인덱스를 지정하여 값 출력
System.out.println(iArr[0]);
 
// 반복문을 이용한 배열의 값 출력
for(int i = 0; i < iArr.length; i++)
{
    System.out.println(iArr[i]);
}
 
// Arrays 클래스의 toString 메소드를 이용한 출력
System.out.println("선택 정렬 오름차순 : " + Arrays.toString(iArr));

배열을 변수와 같이 출력하면 Stack영역에 저장되어 있는 배열의 주소 값이 출력되게 됩니다.

그래서 Heap영역에 저장되어 있는 배열의 값을 출력하기 위해서는 인덱스 값을 이용하여 출력하는 방법이 있습니다.

인덱스 값을 이용하여 배열을 출력하게 되면 해당 인덱스에 저장된 값 하나만 출력되기 때문에

값을 모두 출력하려면 반복문을 이용하여 0번째 인덱스부터 배열의 끝까지 증가시키며 출력하면 됩니다.

다른 방법으로는 자바에 저장된 Arrays클래스의 toString메소드를 이용하여 출력하는 방법이 있습니다.

이상으로 배열에 대해 공부해보았습니다.

수고하셨습니다. 다음 글에서 봬요.

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] 배열의 복사(Array Copy)  (0) 2020.08.01
[JAVA] 배열의 정렬(Array Sort)  (0) 2020.07.19
[JAVA] 반복문  (0) 2020.06.14
[JAVA] 조건문  (0) 2020.06.12
[JAVA] 연산자(Operator)  (0) 2020.06.12

관련글 더보기

댓글 영역