배열은 순차 자료 구조의 대표적인 예로, 동일한 자료형의 변수를 한꺼번에 순차적으로 관리하기 위해 사용합니다.
배열 또한 변수와 같이 선언, 초기화, 사용 단계를 거칩니다.
- 배열 선언
- 자료형[ ] 배열명 = new 자료형[개수];
- 자료형 배열명[ ] = new 자료형[개수];
- 배열 초기화
- 자료형[ ] 배열명 = new 자료형[ ] { }; 주의할 점은 우항 자료형에 개수를 작성하면 오류가 발생한다.
- 자료형 [ ] 배열명 = { }; 와 같은 방식을 사용하면 배열의 선언과 동시에 초기화가 진행된다.
- 배열 사용
- 배열명[index number] = 값;
- 해당 배열에 맞는 데이터 값을 작성하면 배열에 추가된다.
지금부터는 각 요소들에 대해서 조금 더 자세히 알아보자
- 배열의 길이 속성은 배열명.length 형태로 사용한다.
- length를 직관적으로 알기 위해서 우리는 for문에서 '<='이 아니라 '<'을 사용한다.
- [ ] : 인덱스 혹은 첨자 연산자라고 불리며 배열의 위치를 지정하여 자료를 가져온다.
- [index number] : 0부터 시작하고 n개의 배열은 n-1 위치까지 자료가 존재한다.
- 배열 변수는 참조 변수에 속한다.
- 즉, 배열이 객체이므로 힙 영역에 생성되고 배열 변수는 힙 영역의 배열 객체를 참조한다.
- new 예약어를 사용하지 않으면 해당 배열은 null 값을 가진다.
- null 값을 가진 상태의 배열을 사용하면 NullPointException이 발생한다.
- 다차원 배열
- 1차원 배열이 여러 층 쌓여 있는 형태로 생각하면 이해하기 쉽다.
- 보통 지도, 게임 등과 같은 평면이나 공간을 구현할 때 많이 사용된다.
- 자료형[ ] [ ] 배열명 = new 자료형[행] [열];
- 행,열로 생각하면 2차원 배열 형태의 이해가 조금 쉬워진다.
public class ArrayTest {
public static void main(String[] args) {
String[] abc = new String[6];
abc[0] = "a";
abc[1] = "b";
abc[2] = "c";
abc[3] = "d";
abc[4] = "e";
abc[5] = "f";
//abc[6] = "g"; -> ArrayIndexOutOfBoundsException : 크기가 초과되었다는 오류
// 배열의 길이를 알고 있는 상황(abc = 6)
for(int i = 0; i < 6; i++) {
System.out.println(abc[i]);
}
// length를 이용한 for문
for(int i = 0; i < abc.length; i++) {
System.out.println(abc[i]);
}
// 향상된 for문
for(String s : abc) {
System.out.println(s);
}
// 결과는 length를 사용한 것과 일치한다.
int[][] numArr = new int[2][3];
int[][] numArr = { {1,2,3}, {4,5,6} };
for(int[] num1 : numArr) {
for(int num2 : num1) {
System.out.println(num1);
}
}
}
}
우리는 배열을 조금 더 쉽게 사용하기 위해서 List 인터페이스를 많이 사용합니다.
'백엔드 > JAVA' 카테고리의 다른 글
람다 표현식(lambda expression), 메소드 참조 (0) | 2021.08.22 |
---|---|
제네릭(Generic) 문법과 Optional 클래스 (0) | 2021.08.22 |
반복문(while문, for문) (0) | 2021.08.21 |
[JAVA] 조건문(if문과 switch-case문) (0) | 2021.03.09 |
[JAVA] 연산자 (0) | 2021.03.07 |
최근댓글