배열이란?
연속된 공간에 값을 나열시키고, 각 값에 인덱스를 부여해 놓은 자료구조이다.
- 생성 후에는 배열의 크기(길이)는 변경할 수 없다.
- 배열은 객체이다.
배열 변수 "선언"
- 타입[] 변수; (많이 사용됨)
- 타입 변수[];
- 타입[] 변수 = {1,2,3, ... }; (O)
- 타입[] 변수;
변수 = {1,2,3, ... } (X)
- 타입[] 변수;
변수 = new 타입[] {1,2,3, ... } (O)
- 타입[] 변수 = new 타입[길이];
(기본값이 초기화 되어 저장된다.) ex. 0
배열의 길이 : 변수.length
다차원 배열
- "1차원은 선, 2차원은 면"의 개념으로 이해하면 안된다.
- 1, 2, 3차원으로 나아갈 수록 참조하는 것이 많아지는 것이다.
- 변수[0].length : 3
- 변수[0][1].length : 2
값 목록으로 생성
int[][] scores = { {1,2,3}, {4,5} };
- scores.length : 2
- scores[0].length : 3
- scores[1].length : 2
객체를 넣은 배열
- 기본 타입 배열은 값을 직접 저장하지만, 객체 타입 배열은 값의 주소를 저장하고 있다.
- 리터럴(값)이 같다면 같은 주소를 참조하게 된다.
배열 복사
배열의 길이를 변경할 수 없기 때문에, 새로운 배열에 기존 배열을 복사한다. (번지를 복사하게 되는 것이다.)
<System클래스의 메소드 활용>
- System.arraycopy (원본 배열, 원본 시작 인덱스, 새 배열, 새 배열 붙여넣기 인덱스, 복사 갯수)
인덱스가 필요 없을 때 사용하는 for문
배열 전체를 실행해 준다.
int[] number = {1,2,3}; int sum = 0; for(int num : number) { sum = sum + num; }