배열
- 한 가지 타입의 변수에 여러 개의 값을 넣을 수 있는 것
- 자료구조 중 하나 (지료구조 : 데이터를 저장하기 위한 구조)
- 배열 선언 방법
- new 예약어 사용
- 중괄호를 사용해 배열을 선언과 함께 초기화 → 보통 변경되지 않는 값을 지정할 때 사용
- 표기할 때 타입과 배열 변수 사이에 대괄호들을 넣는 것을 권장
ex) int []intArray
- 배열의 잘못된 부분에 값을 할당하면 컴파일할 땐 이상이 없지만 실행할 때 ArrayIndexOutOfBoundsException이 발생한다.
-> ArrayIndexOutOfBoundsException에러는 잘못된 index에 값을 할당하거나 잘못된 index에 값을 참조할 때 발생
- 객체를 출력할 때 toString이라는 메소드를 사용하지 않으면 "타입이름@고유번호" 순으로 내용이 출력된다.
ex) ArrayInitValue@c17164, [B@14ae5a5
- 배열은 크기만 지정해 초기화만 하면 자료형의 기본값이 지정되며, 참조 자료형 배열은 null이 지정된다.
2차원배열
twoDim[][]
twoDim[0]=int배열
twoDim[0][0] = int값
- 1차원의 크기만 지정하고, 2차원의 크기는 지정하지 않을 수 있다 ex) twoDin = new int[2][];
- 1차원 배열 빈공간 2차원 배열 지정 or 두 배열 모두 지정 X → 컴파일시 에러 발생
- 1차원 배열을 선언한 다음에 2차원 배열을 선언한다. 이와 같이 선언하면 2차원 배열의 공간의 크기를 서로 다르게 지정할 수 있다.
int [][]twoDim;
twoDim = new int[2][];
twoDim[0] = new int[3];
twoDim[1] = new int[5];
- 중괄호를 이용해 배열을 선언할 수 있다.
ex) int [][]twoDim = {{1,2,3}, {4,5,6}}
- 배열 이름에 .length를 붙여주면 1차원 배열의 크기를 리턴해준다. 2차원의 크기는 1차원 배열에 .length를 붙여준다.
- 값만을 처리하기 위한 배열은 콜론이 있는 for루프를, 배열의 위치정보(index)도 같이 필요한 배열은 세미콜론이 두 개 있는 for루프를 사용하는 것이 편하다
이중 루프 for문
for(타입이름 임시변수명 : 반복대상객체) {}
int [][]twoDim = {{1,2,3}, {4,5,6}};
for(int[] dunArray:twoDim){
for(int data:dinArray){
System.out.println(data);
}
}