
- 변수를 그룹으로 묶은 형태의 한 종류로서, 사물함 같은 형태를 갖고 있다.
- 하나의 배열안에는 같은 종류(데이터 형)의 값들만 저장될 수 있다.
배열의 선언
데이터형[] 배열이름;
배열의 생성 : 변수를 저장할 수 있는 사물함이 생성된다.
배열이름 = new 데이터형[크기];
배열 생성의 예 : 3개의 int형 변수를 저장할 수 있는 배열 생성
int[] grade; grade = new int[3];
배열의 선언과 크기 지정에 대한 일괄처리
데이터형[] 배열이름 = new 데이터형[크기]; int[] grade = new int[3];
생성된 배열은 사물함과 같이 각각의 칸에 값들이 저장되고, 각각의 칸은 0부터 일련번호가 지정된다.(일련번호 = 배열의 인덱스)

- 배열은 값을 저장할 수 있는 공간일 뿐, 그 자체가 값은 아니다.
- 값이 대입되지 않은 경우, 숫자형은 0, boolean형은 false가 자동으로
대입된다.- 배열안에 값을 저장하기 위해서는 익덱스 번호를 사용하여
각각의 칸에 직접 값을 대입해야 한다.배열이름[인덱스] = 값;
int[] grade = new int[3]; grade[0] = 75; grade[1] = 82; grade[2] = 91;

배열의 크기를 지정하면서 괄호 "{...}" 안에 배열에 포함될 각 항목들을 콤마(,)로 나열하면, 배열의 생성과 값의 할당을 일괄처리 할 수 있다.
이 때, 배열의 크기를 별도로 지정하지 않으며, "new 데이터형[]" 부분은 생략이 가능하다.
데이터형[] 배열이름 = new 데이터형[]{75, 82, 91}; 혹은 데이터형[] 배열이름 = {75, 82, 91};
System.out.println( grade[0] ); System.out.println( grade[1] ); System.out.println( grade[2] );


// 배열의 인덱스는 0부터 전체 길이 3보다 작은 2까지이다. int[] grade = new int[]{100, 100, 90}; for( int i = 0; i < 3; i++ ) // <- 하드코딩 { System.out.println(grade[i]); }
배열의 길이를 얻기 위해서는 "배열이름.length" 형식으로 접근한다.
grade라는 배열을 생성한 경우 배열의 길이
int size = grade.length; ------------------------------------------ int[] grade = new int[]{100, 100, 90, 80}; for( int i = 0; i < grade.length; i++ ) { System.out.println(grade[i]); }
<1차 배열>
-> 앞에서 살펴본 배열처럼 한 줄만 존재하는 사물함 같이 구성된 배열 -> 행에 대한 개념이 없고, 열에 대한 개념만 존재하기 때문에 "배열이름.length"는 몇 칸인지를 알아보는 기능이 된다.
<2차 배열>
-> 1차 배열의 각 칸에 새로운 배열을 넣는 형태 -> 1차 배열의 각 칸은 행이 되고, 각각의 칸에 추가된 개별적인 배열이 "열"의 개념이 되어 "행렬"을 구성하게 된다.
데이터형[][] 배열이름;
배열이름 = new 데이터형[행][열];
데이터형[][] 배열이름 = new 데이터형[행][열];
데이터형[][] 배열이름 = new 데이터형[][]{ { 0행0열의 값, 0행 1열의 값, ..., 0행n열의 값 }, { 1행0열의 값, 1행 1열의 값, ..., 1행n열의 값 }, ... { n행0열의 값, n행 1열의 값, ..., n행n열의 값 } };
배열이름[행][열] = 값;
-> 행, 열에 대한 인덱스를 통하여 값을 대입한다.

2차원 배열의 길이는 행에 대한 측면과 열에 대한 측면을
나누어서 생각해야 한다.
<행의 길이>
int rows = garde.length;
-> 1차원 배열에서 길이는 2차원 배열에서는 행의 크기로 조회
<열의 길이>
int cols = grade[행].length;
-> 열의 길이는 각 행에 대해서 개별적으로 조회해햐 한다.
<1차 배열 예제>
1) 
2) 
3) 
4) 
<2차 배열 예제>
1)
2) 