배열
배열이란 변수의 집합, 같은 데이터 타입의 변수를 하나로 묶은 것으로 많은 양의 값(데이터)을 다룰 때 유용하다. 배열의 각 요소는 서로 연속적이며(메모리도 연속적으로 잡히게 된다.) 배열의 이름(변수)은 연속된 변수들을 참조하기 위한 참조 값이 된다.
배열의 선언과 생성
타입 또는 변수이름 뒤에 대괄호[ ]를 붙이면 배열이 선언된다.
| 선언방법 | 예 |
|---|---|
| 타입[ ] 변수이름; | int[ ] data; String[ ] name |
| 타입 변수이름[ ]; | int data[ ]; String name[ ]; |
하지만 위와 같이 배열을 선언한다고 해서 값을 저장할 공간이 생성되는 것이 아니라 배열을 다루는데 필요한 변수가 생성된 것이기 때문에 배열을 생성 해야 한다.
배열의 초기화
배열을 생성하면 배열의 각 요소는 생성한 데이터 타입의 초기값으로 초기화된다. 생성된 배열에 처음으로 값을 저장하는 방법은 아래와 같다.
int[ ] data = new int[5];
data[0] = 10;
data[1] = 20;
data[2] = 30;
data[3] = 40;
data[4] = 50;
선언과 동시에 값을 초기화 하는 방법은 아래와 같다.
int[] data = new int[]{10, 20, 30, 40, 50};
int[] data = {10, 20, 30, 40, 50};
배열의 활용
배열에 값을 저장하고 읽어오는 방법은 아래와 같다.
data[3] = 100; // 배열 data의 4번 째 요소에 100을 저장한다.
int value = data[3]; // 배열 data의 4번 째 요소의 저장된 값을 읽어와서 변수 value에 저장한다.
배열의 크기를 알고 싶으면 배열이름.length 를 아래와 같이 사용하면 된다.
int[ ] data = {100, 90, 80, 70, 60, 50};
for (int i=0; I < 6; i++) {
System.out.println(data[i]);
}
//배열의 크기가 6이므로 data.length는 6이다.
for(int i=0; I < data.length; i++) {
System.out.println(data[i]);
}
다차원 배열
[ ] 의 개수를 늘리면 차원의 수가 늘어나 다차원 배열이 된다. 아래와 같이 선언하면 2차원 배열이 만들어 지게 된다.
| 선언방법 | 예 |
|---|---|
| 타입[ ] [ ] 변수이름; | int[ ] [ ] data; |
| 타입 변수이름[ ] [ ]; | int data[ ] [ ]; |
| 타입[ ] 변수이름[ ]; | int[ ] data[ ]; |
예제
-
Code
Array.javapublic class Array { int[] human= {1,3,5,7,9}; // int[] human= new int[3]; int[][] human1= new int[5][5]; int[][] diff = new int[3][]; int value=1; // 2차원 배열의 크기가 다를때는 아래와 같이 선언해야 함 public void diffArray(){ diff[0] = new int[2]; diff[1] = new int[4]; diff[2] = new int[3]; } public void test(){ for(int i=0; i < human.length;i++){ System.out.println(human[i]); } System.out.println(""); for(int i : human){ System.out.println(i); } System.out.println(""); } public void test1(){ for(int i=0;i < human1.length;i++){ for(int j=0;j < human1[i].length;j++){ human1[i][j]=value; value++; } } System.out.println("향상된 for문사용"); for(int[] first:human1){ for(int value:first){ System.out.print(value+ " "); } System.out.println(); } for(int i=0;i < human1.length;i++){ for(int j=0;j < human1[i].length;j++){ System.out.print(human1[i][j]+" "); } System.out.println(); } } } -
Code
ArrayMain.javapublic class ArrayMain { public static void main(String[] args) { Array array = new Array(); array.test(); array.test1(); } } -
Result