[Java] 배열 Array 정리
★ 배열 Array
배열은 많은 양의 데이터를 효율적으로 관리할 수 있도록 해주는 선형 자료구조입니다.
같은 자료형의 데이터를 연속된 공간에 순차적으로 나열하고, 배열 내의 요소들은 각각의 순서를 갖고 있는데 이것을 인덱스 index 라고 부릅니다.
- 특징
- 같은 타입의 데이터만 저장할 수 있다.
- 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다.
- 각각의 요소는 index 라는 순서를 갖고 있다.
★ 배열 선언 및 초기화
자바의 배열은 '한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다' 라는 특징을 갖기 때문에, 미리 배열의 크기를 지정해야 합니다.
- 배열 선언
// 길이가 5인 배열 선언
int[] arr1 = new int[5];
int arr2[] = new int[5];
- 배열 선언 및 초기화
다음과 같은 방법들로 배열을 선언함과 동시에 초기화를 할 수 있습니다.
// 선언과 동시에 초기화
int[] arrNum = {1, 2, 3, 4, 5};
String[] arrString = {"Hello", "World"};
char[] arrChar = new char[] {'a', 'b', 'c'};
- 주의사항
값의 목록으로 배열을 선언할 때, 배열 변수를 이미 선언한 후에 중괄호를 사용한 배열 생성은 에러를 발생시킵니다.
int[] arr;
arr = {1, 2, 3, 4, 5}; // 컴파일 에러
배열 변수를 미리 선언한 후, 값 목록을 지정해야하는 상황이라면 new 연산자를 통해 값의 목록을 지정해야 합니다.
int[] arr;
arr = new int[] {1, 2, 3, 4, 5}; // new 연산자를 이용한 값의 목록 지정
★ 배열 요소 접근 및 값 할당
배열의 요소를 접근할 때에는 index 를 이용합니다.
int[] arr = {1, 2, 3, 4, 5};
int el = arr[1]; // 배열 요소 접근
arr[0] = 100; // 배열 요소 값 할당
★ 배열 크기 - length
배열의 length 프로퍼티를 사용하여 배열의 길이를 알 수 있습니다.
int[] arr = {1, 2, 3, 4, 5};
System.out.println(arr.length); // 5
★ 배열 출력
배열을 출력하고자 할 때, 다음과 같이 배열의 이름만을 print 문에 넣어 출력하게 되면 우리가 원하는 결과를 얻지 못 합니다.
int[] arr = {1, 2, 3, 4, 5};
System.out.println(arr); // [I@1fb3ebeb
// [I: 배열 int 형
// 1fb3ebeb 번지
배열은 참조 타입이기 때문에 arr 변수 자체는 스택 영역에 존재하고 그 값으로는 실제 배열이 저장되어 있는 힙 영역의 메모리 주소를 갖고 있게 됩니다.
따라서 배열을 출력하기 위해선 for 문을 사용하여 배열의 각 요소에 접근하여 출력하거나, java.util.Arrays 클래스에서 제공해주는 Arryas.toString() 메소드를 이용하여 배열을 문자열 형식으로 출력할 수 있습니다.
int[] arr = {1, 2, 3, 4, 5};
// for 문을 사용하여 배열 출력
for(int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
// 1 2 3 4 5
// Arrays.toString() 메소드를 사용하여 배열 출력
System.out.println(Arrays.toString(arr));
// [1, 2, 3, 4, 5]
★ 배열 Arrays 메소드
java.util.Arrays 클래스에서 제공해주는 여러 메소드는 다음 사이트에서 확인해주세요.
https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html