배열
배열(Array)은 같은 데이터 타입을 가진 연속된 메모리 공간으로 이루어진 자료구조로 같은 데이터 타입을 가진 여러개의 변수가 필요할 때 사용한다.
기본적으로 변수는 선언되면 메모리가 Stack 영역에 생성되며 초기화시 해당 변수에 값이 들어가게 된다. 하지만 배열의 경우 선언되면 메모리가 Stack 영역에 생성되며 그 영역에는 값이 아닌 Heap의 주소값이 들어갈 수 있게 된다. 아래 방법처럼 new 연산자를 통해서 실제 데이터를 저장하는 메모리가 배열의 크기만큼 할당되는데 이 메모리들이 Heap 영역에 생성되는 것이다.
배열 선언과 초기화를 따로 하는 방법
배열 생성 방법(배열 선언 및 메모리 할당)
타입[] 배열명 = new 타입[배열크기];
타입 배열명[] = new 타입[배열크기];
타입[] = 배열명 = {}; //배열크기를 지정하지 않고 빈 배열 생성
배열에 값을 저장하는 방법
배열명[0] = 값;
배열명[1] = 값;
배열명[2] = 값;
...
배열명[n-1] = 값;
//n은 배열의 크기로 배열은 인덱스 0부터 시작하기 때문에 마지막 인덱스는 n-1 이다.
배열에 저장된 값을 꺼내 사용하는 방법(배열 접근)
배열명[접근하려는 인덱스]
배열 선언과 초기화를 동시에 하는 방법 ⭐
타입[] 배열명 = new 타입[]{ 초기화할 값들 };
타입[] 배열명 = { 초기화할 값들 };
배열 선언과 초기화를 동시에 하게 되면 초기화할 값들이 필요하지만, 배열의 크기를 초기화할 값들의 수에 따라서 유동적으로 생성할 수 있기 때문에 필요에 따라 유용하게 사용할 수 있다.
다음을 예시를 통해서 알아보자.
int[] array1 = new int[4]; //정수 4개를 저장하는 배열 선언
array1[0] = 1;
array1[1] = 2;
array1[2] = 3;
array1[3] = 4;
//배열에 각각 1,2,3,4를 저장
System.out.println(array1[1]); // 배열 사용
//선언과 초기화를 동시에
int[] array2 = new int[]{1,2,3,4,5};
System.out.println(array2[1]);
[참고] 배열의 길이를 알아내는 방법 (메서드)
배열명.length
배열과 for 반복문 ⭐
배열은 크기가 정해져 있기 때문에 배열 내부를 모두 돌게 된다면 주로 for문과 잘 사용된다.
int[] arr = new int[100];
for(int i = 0; i < arr.length; i++) { //배열명.length 는 배열의 전체 크기
arr[i] = i + 1; //arr[0] 부터 arr[99] 까지 i + 1 씩 초기화
System.out.printf("arr[%d] 의 값 : %d%n", i, arr[i]); //배열의 모든 요소의 값을 출력
}
[심화] foreach 문 ⭐
자바 1.5버전부터 추가된 구문으로 배열의 모든 요소들을 순회할 때 유용하다.
for(배열타입 요소변수명 : 순회할 배열){
실행문;
}
이를 예시를 통해서 보자면 아래와 같다. 10, 20, 30, 40, 50 라는 요소들을 모두 순회하면서 출력한다.
int[] arr = {10, 20, 30, 40, 50};
for(int value : arr) {
System.out.println(value);
}
'JAVA > 자바 문법' 카테고리의 다른 글
[Java] 객체지향언어 (0) | 2023.08.31 |
---|---|
[Java] 2차원 배열 (0) | 2023.08.29 |
[Java] 반복문 (0) | 2023.08.29 |
[Java] 조건문 (0) | 2023.08.29 |
[Java] 연산자 (0) | 2023.08.28 |