- 여러개의 값을 한 번에 저장하기 위해 사용한다.
- 변수를 그룹으로 묶은 형태의 한 종류로서, 사물함 같은 형태를 갖고 있다.
- 하나의 배열 안에는 같은 종류(데이터 형)의 값들만 저장될 수 있다.
- 배열은 값을 저장할 수 있는 공간일 뿐, 그 자체가 값은 아니다.
- 값이 대입되지 않은 경우, 숫자형은 0, boolean형은 false가 자동으로 대입된다.
- 배열안에 값을 저장하기 위해서는 인덱스 번호를 사용하여 각각의 칸에 직접 값을 대입해야 한다.
1. 배열의 선언과 초기화.
자료형[] 배열명 = {값1, 값2, 값3,..., 값n};
ex) int[] grade = {75, 82, 91};
2. 배열의 선언과 초기화. (크기만)
자료형[] 배열명 = new 자료형[크기];
ex) int[] ar = new int[3]; -> int타입의 값들을 담을 수 있는 3칸 크기의 ar배열 선언.
3. 배열을 선언하는 여러가지 방법. (가능은 하지만 표준방법 준수.)
* int [] ar = {1, 2}; (띄어쓰기 가능)
* int []ar = {1, 2}; (가능)
* int ar[] = {1, 2}; (가능)
= 생성된 배열은 사물함과 같이 각각의 칸에 값들이 저장되고, 각각의 칸은 0부터 일련번호가 지정된다. (일련번호 = 인덱스번호)
= 0부터 (요소의 갯수 - 1) 까지 있다.
※ 요소의 갯수를 구하는 키워드 : 배열명.length;
ex) ar이라는 배열을 생성한 경우 배열의 길이는 ar.length; 이다.
-> 결과는 무조건 정수 값으로 나온다.
배열명{인덱스] = 값;
ex) int[] ar = new int[3]; -> int타입의 값들을 담을 수 있는 3칸 크기의 ar배열 선언.
ar[0] = 100; -> ar배열의 첫번째 칸에 100을 넣는 코드.
ar[1] = 200; -> ar배열의 두번째 칸에 200을 넣는 코드.
ar[2] = 300; -> ar배열의 세번째 칸에 300을 넣는 코드.
= 배열안에 저장되어 있는 값들을 사용하여 연산이나 출력들의 처리를 위해서는
배열의 부여된 인덱스 값을 통해서 데이터에 접근해야 한다.
ex) int[] ar = {100, 200, 300};
System.out.println(ar[0]); -> 결과는 : 100 출력.
System.out.println(ar[1]); -> 결과는 : 200 출력.
System.out.println(ar[2]); -> 결과는 : 300 출력.
- 1차원 배열의 각 칸에 새로운 배열을 넣는 형태.
- 1차원 배열의 각 칸은 행이되고, 각각의 칸에 추가된 개별적인 배열이 열의 개념이 되어 "행렬"을 구성하게 된다.
1. 2차원 배열의 선언과 초기화
자료형[][] 배열명 = {{값,값,..}, {값,값,..}, {값,값,..},..};
ex) int[][] arr = {{1,2,}, {10,20}, {100,200}};
2. 2차원 배열의 선언과 초기화 (크기만)
ex) int[][] arr = new int[행크기][열크기];
= 2차원 배열의 길이는 행에 대한 측면과 열에 대한 측면을 나누어서 생각해야 한다.
1. 행의 길이
-> 1차 배열의 길이가 2차 배열에서는 행의 크기로 조회된다.
배열명.length;
2. 열의 길이
-> 열의 길이는 각 행에 대하여 개별적으로 조회해야 한다.
배열명[행].length;
int[][] arr = {{1,2}, {10,20}, {100,200}}; -> 2차원 배열의 선언
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
System.out.println(arr[i][j]);
}
}
-> 결과 : 1, 2, 10, 20, 100, 200