JAVA
2011. 5. 28. 00:13
배열이란 열개의 변수가 필요한데 그 변수들이 타입, 목적 등이 비슷하다면 열개의 데이터를
한 곳에 몰아넣고 변수로 각각 꺼내어 쓸 수 있다. 그 때 쓰는 것이 배열이다.
배열중 가장 단순한 구조가 1차원 배열인데 1차원 배열의 선언은 다음과 같다.
타입 식별자[];(int arr[];) 또는 타입[] 식별자;(int[] arr;) 이다.
하지만 이렇게 선언만 한다고 되는건 아니고 다음과같이 배열을 생성해서 변수에 대입해야한다.
new 타입[크기];(arr = new int[10];) 이렇게 사용해야 한다. 열개의 공간을 만들겠다는 의미이다.
이제 이렇게 만든 배열변수에 값을 넣으려면 그 배열에 몇 번째 인지를 알려주는 인덱스(Index)
값을 넣어주어야 한다. 배열이름[인덱스]; 이렇게 만들고 arr[0] = 12; 이렇게 사용한다.
예제를 보자
한 곳에 몰아넣고 변수로 각각 꺼내어 쓸 수 있다. 그 때 쓰는 것이 배열이다.
배열중 가장 단순한 구조가 1차원 배열인데 1차원 배열의 선언은 다음과 같다.
타입 식별자[];(int arr[];) 또는 타입[] 식별자;(int[] arr;) 이다.
하지만 이렇게 선언만 한다고 되는건 아니고 다음과같이 배열을 생성해서 변수에 대입해야한다.
new 타입[크기];(arr = new int[10];) 이렇게 사용해야 한다. 열개의 공간을 만들겠다는 의미이다.
이제 이렇게 만든 배열변수에 값을 넣으려면 그 배열에 몇 번째 인지를 알려주는 인덱스(Index)
값을 넣어주어야 한다. 배열이름[인덱스]; 이렇게 만들고 arr[0] = 12; 이렇게 사용한다.
예제를 보자
class ArrayExample {
public static void main(String args[]){
int arr[];
arr = new int[10]; // 이렇게 열개의 배열을 생성 했다
arr[0] = 10; // 0번엔 10을
arr[1] = 20; // 1번엔 20을
arr[2] = arr[0] + arr[1]; 2번엔 0번과 1번배열 더한 것을 값으로 대입하였다.
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
결과는
10
20
30 으로 나온다.
알아 두고 갈것이 있는데, 왜 로컬변수처럼 선언하지않고 새로 생성을 다시 해줘야하는 이유는
변수를 하나 생성하면 그 변수에 관한 메모리 공간이 만들어지게 되는데
int arr[]; 만 만들면 그야말로 그냥 한 공간 뿐이 만들어지지 않는다. 그렇기 때문에 배열의
메모리를 만드는 작업을 따로 해줘야하는데 그것이 배열 생성식이다 .
new int[5]; 이렇게 쓰면 다섯개의 공간이 만들어진다. 그럼 위의 배열변수를 선언할 때의
메모리는 어디다쓰냐하면 바로 배열 생성식으로 만든 다섯개의 공간을 참조하려면
참조값이 있어야하는데 이 참조값(reference value)을 담는데에 그 메모리공간을 사용한다.
쉽게말해 arr[0] 의 공간에 12라는 값을 대입했다면 얘를 쓰려할 때 이 12라는 값을 가리키는
값이 들어가있다. 말이 어려운데 계란 한 판을 가져다 놓았다고 치고, 두번째줄에
첫번째 계란을 가져와라 라고 한다면 이 '두번째줄에 첫번째 계란을 가져와라' 라는 것이
참조값이고, 이 참조값을 담아두는곳이 아까 int arr[]; 여기서 만들어진 메모리이다.
확실히말하면. 참조값이 정확히 얘를 가리키는 주소를 말하는 것은아니다.
다만 우린 그렇게 알고 있으면 되고 나머지는 자바 가상기계가 해준다.
다차원배열도 비슷하다.
타입 식별자[][];(int arr[][];) 또는 타입[][] 식별자;(int[][] arr;) 로 선언한다.
int[] arr[]; 이것도 되긴된단다. 혼란스러워서 안쓰지만
2차원 배열의 생성식도 비슷하다.
new 타입[크기1][크기2]; (arr = new int[10][10]); 이런식이다.
역시 같은
10
20
30 의 결과가 찍힌다. 이런방식으로, 3차원, 4차원 배열이 모두 가능하다.
* 배열의 초기화와 선언을 한꺼번에 하는 방법.
int arr[] = {10, 20, 30, 40, 50}; 이런식으로 한꺼번에 한다.
배열, 편하다, 잘쓰고있다 고마워
출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다.
결과는
10
20
30 으로 나온다.
알아 두고 갈것이 있는데, 왜 로컬변수처럼 선언하지않고 새로 생성을 다시 해줘야하는 이유는
변수를 하나 생성하면 그 변수에 관한 메모리 공간이 만들어지게 되는데
int arr[]; 만 만들면 그야말로 그냥 한 공간 뿐이 만들어지지 않는다. 그렇기 때문에 배열의
메모리를 만드는 작업을 따로 해줘야하는데 그것이 배열 생성식이다 .
new int[5]; 이렇게 쓰면 다섯개의 공간이 만들어진다. 그럼 위의 배열변수를 선언할 때의
메모리는 어디다쓰냐하면 바로 배열 생성식으로 만든 다섯개의 공간을 참조하려면
참조값이 있어야하는데 이 참조값(reference value)을 담는데에 그 메모리공간을 사용한다.
쉽게말해 arr[0] 의 공간에 12라는 값을 대입했다면 얘를 쓰려할 때 이 12라는 값을 가리키는
값이 들어가있다. 말이 어려운데 계란 한 판을 가져다 놓았다고 치고, 두번째줄에
첫번째 계란을 가져와라 라고 한다면 이 '두번째줄에 첫번째 계란을 가져와라' 라는 것이
참조값이고, 이 참조값을 담아두는곳이 아까 int arr[]; 여기서 만들어진 메모리이다.
확실히말하면. 참조값이 정확히 얘를 가리키는 주소를 말하는 것은아니다.
다만 우린 그렇게 알고 있으면 되고 나머지는 자바 가상기계가 해준다.
다차원배열도 비슷하다.
타입 식별자[][];(int arr[][];) 또는 타입[][] 식별자;(int[][] arr;) 로 선언한다.
int[] arr[]; 이것도 되긴된단다. 혼란스러워서 안쓰지만
2차원 배열의 생성식도 비슷하다.
new 타입[크기1][크기2]; (arr = new int[10][10]); 이런식이다.
class ArrayExample2 {
public static void main(String args[]){
int arr[][] = new int[10][10];
arr[0][0] = 10;
arr[1][1] = 20;
arr[2][2] = arr[0][0] + arr[1][1];
System.out.println(arr[0][0]);
System.out.println(arr[1][1]);
System.out.println(arr[2][2]);
}
}
역시 같은
10
20
30 의 결과가 찍힌다. 이런방식으로, 3차원, 4차원 배열이 모두 가능하다.
* 배열의 초기화와 선언을 한꺼번에 하는 방법.
int arr[] = {10, 20, 30, 40, 50}; 이런식으로 한꺼번에 한다.
class Array1 {
public static void main(String args[]){
int arr[] = {10, 20, 30, 40, 50};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
}
}
돌리면 10,20,30,40,50 쭉 찍힌다.
다차원도 마찬가지이다.
int arr[][] = { {1,2,3}, {4,5,6}, {7,8,9}}; 이런식으로 중괄호로 구분을 지으면 된다 .
마지막으로 배열의 길이를 알아보는 방법인데, 배열이 위 예제처럼 열가지정도면 크기를
알기쉽지만, 복잡하고 긴 로직에선 알기 쉽지않다 그럴땐 배열이름 뒤에 .length를 붙여준다.
다차원도 마찬가지이다.
int arr[][] = { {1,2,3}, {4,5,6}, {7,8,9}}; 이런식으로 중괄호로 구분을 지으면 된다 .
마지막으로 배열의 길이를 알아보는 방법인데, 배열이 위 예제처럼 열가지정도면 크기를
알기쉽지만, 복잡하고 긴 로직에선 알기 쉽지않다 그럴땐 배열이름 뒤에 .length를 붙여준다.
class arrayexam {
public static void main(String args[]){
int arr[] = {10, 20, 30, 40, 50};
System.out.println(arr.length);
}
}
이렇게 써주면 5 라고 찍힌다, 위에 배열 갯수를 세어보면 다섯개가 맞다.
이렇게 써주면 5 라고 찍힌다, 위에 배열 갯수를 세어보면 다섯개가 맞다.
출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다.
'JAVA' 카테고리의 다른 글
JAVA] 10. 반복문 (0) | 2011.05.31 |
---|---|
JAVA] 9. 조건문 (0) | 2011.05.31 |
JAVA] 7. 여러가지 대입문 (1) | 2011.05.26 |
JAVA] 6. 로컬 변수의 선언과 이용 (0) | 2011.05.25 |
JAVA] 5. 간단한 조건문과 반복문 (0) | 2011.05.25 |