[java] 배열에 대해서 알아보자
배열
배열의 선언과 사용
자바에서 배열은 객체이다. 그렇기 때문에 변수 선언시 배열 참조 변수를 선언해주어야한다. 그 방법은 아래와 같다.
int[] s;
int s[];
이 부분에서 int
는 배열 요소들의 자료형을 s
는 배열의 이름을 의미한다. 배열 참조 변수를 선언하였지만 아직 배열을 사용할 준비는 되지않았다. 배열을 사용하기 위해서는 new 연산자
를 통해 생성해줘야한다. (이에 대해서는 뒤에서 객체에 대한 내용을 학습하며 다시 이해하도록 하자. ) 생성하는 방법은 다음과 같다.
s = new int[10];
위에서 생성한 배열 참조 변수의 배열의 크기를 10개로 생성한 것이다. 위 두 식은 다음과 같이 합쳐서 사용할 수 있다.
int[] s = new int[10];
이 때 배열은 자동으로 초기화가 되는데 각 자료형에 따라 초기화되는 방식이 다르다.
- 숫자 배열은
0
으로 초기화된다. - boolean 배열은
false
로 초기화된다. - 문자열 배열은
null
로 초기화된다.
배열 선언을 더 쉽게 하면 안되나?
int[10] s;
다음과 같은 방식은 허용되지 않는 문법이다.
배열의 초기화
위에서는 배열의 변수를 선언해주고 어떤 값으로 초기화 되는지 알아보았다. 사용자가 원하는 값으로 초기화 해주기 위해서는 중괄호를 사용해서 배열의 초기값을 적고, 이 때는 연산자 new 를 사용하지 않아도 되고, 배열의 크기를 지정할 필요도 없다.
int[] s = {1,2,3,4,5};
배열과 반복문
배열의 원소들에 접근할 때는 다음과 같이 반복문을 통해 쉽게 접근할 수 있다. s.length
는 배열의 크기를 반환한다.
public class array {
public static void main(String[] args) {
int[] s = {1,2,3,4,5};
for (int i=0;i<s.length;i++) {
System.out.print(s[i]+" ");
}
}
}
//1 2 3 4 5
자바에서는 이를 더 쉽게 구현할 수 있다. for-each 루프
라고 불리는 방법인데 더 쉽게 배열의 요소들에 접근이 가능하다. i
가 배열 s
를 순회하게 된다.
public class array {
public static void main(String[] args) {
int[] s = {1,2,3,4,5};
for (int i : s) {
System.out.print(i+" ");
}
}
}
//1 2 3 4 5
2차원 배열
2차원 배열의 선언과 초기화도 1차원 배열과 비슷한 방식으로 이루어진다.
int[][] s = new int[3][5];
int[][] s1 = {
{1,2,3},
{4,5,6},
{7,8,9}
};