
인덱스를 이용해서 자료형이 같은 다수의 데이터를 쉽고 효율적이게 관리하기 위해 사용하는 것이다.
EX) 배열길이 n일 때,
| 인덱스 1 | 인덱스 2 | 인덱스 3 | . . . | 인덱스 n-1 |
|---|---|---|---|---|
| 데이터 | 데이터 | 데이터 | . . . | 데이터 |
배열도 변수와 마찬가지로 선언과 초기화 과정을 거쳐 사용한다.
배열 선언 시에 배열의 타입과 크기를 정하므로 이후 배열의 크기가 변하지 않는다.
int[] arr1 = new int[5];
arr1[0] = 10;
arr1[1] = 20;
arr1[2] = 30;
arr1[3] = 40;
arr1[4] = 50;
System.out.println("arr1[0] : " + arr1[0]); // arr1[0] : 10
System.out.println("arr1[1] : " + arr1[1]); // arr1[1] : 20
System.out.println("arr1[2] : " + arr1[2]); // arr1[2] : 30
System.out.println("arr1[3] : " + arr1[3]); // arr1[3] : 40
System.out.println("arr1[4] : " + arr1[4]); // arr1[4] : 50
int[] arr2 = [100, 200, 300, 400, 500]
System.out.println("arr1[0] : " + arr1[0]); // arr1[0] : 100
System.out.println("arr1[1] : " + arr1[1]); // arr1[1] : 200
System.out.println("arr1[2] : " + arr1[2]); // arr1[2] : 300
System.out.println("arr1[3] : " + arr1[3]); // arr1[3] : 400
System.out.println("arr1[4] : " + arr1[4]); // arr1[4] : 500
배열을 구성하는 데이터의 자료형에 따라서 배열의 메모리 크기가 결정된다.
- EX)
int[] arr = new int[3];→ int형 4 Byte * 3 = 12 Byte
기본 자료형 데이터를 담고 있는 변수와 달리 배열은 객체 자료형이기 때문에 배열 변수는 배열 데이터의 주소를 담고 있다.
int[] arr1 = { 10, 20, 30, 40, 50 }
System.out.println( arr1.length ); // 5
int[] arr1 = { 10, 20, 30, 40, 50 }
System.out.println( Arrays.toString(arr1) ); // [ 10, 20, 30, 40, 50 ]
배열 요소 복사 : 배열 데이터의 주소가 아닌 배열의 요소들만 복사한다
배열 레퍼런스 : 배열 데이터의 주소를 복사한다
int[] arr1 = { 10, 20, 30, 40, 50 }
int[] arr2 = null;
int[] arr3 = null;
// 배열 요소 복사
arr2 = Arrays.copyOf( arr1, arr1.length );
System.out.println( Arrays.toString(arr2) ); // [ 10, 20, 30, 40, 50 ]
// 배열 레퍼런스
arr3 = arr1
System.out.println("arr1 : " + arr1); // arr1 : [I@4554617c]
System.out.println("arr2 : " + arr2); // arr2 : [I@4554617c]
System.out.println("arr3 : " + arr3); // arr3 : [I@74a14482]
배열 안에 또 다른 배열이 존재할 수 있다.
int[][] arr = new int[3][2]; // [행][열]
arr[0][0] = 1;
arr[0][1] = 10;
arr[1][0] = 2;
arr[1][1] = 20;
arr[2][0] = 3;
arr[2][1] = 30;
System.out.println( Arrays.toString(arr[0]) ); // [1, 10]
System.out.println( Arrays.toString(arr[1]) ); // [2, 20]
System.out.println( Arrays.toString(arr[2]) ); // [3, 30]