본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/JAVA

[JAVA] 배열 array

by 미노드 2023. 5. 8.

배열을 자바에서 쓰려면 Array 선언이나 사용방법을 알아둬야 한다.

배열이란 자료형의 종류가 아닌 자료형의 집합을 의미한다.
배열은 자료형 타입 바로 옆에
 [] 기호를 사용하여 표현한다. 아래 예제와 같이 int 자료형의 배열은 int[] 로 표현한다.

int[] arr = {12, 24, 35, 37, 49};

요일의 집합은 다음과 같이 String 배열로 표현 할 수 있다.

String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};

위에서 살펴본 요일의 집합은 다음과 같이 고쳐 쓸 수 있다.

String[] weeks = new String[7];
weeks[0] = "월";
weeks[1] = "화";
weeks[2] = "수";
weeks[3] = "목";
weeks[4] = "금";
weeks[5] = "토";
weeks[6] = "일";

배열의 길이를 먼저 설정하여 배열 변수를 먼저 생성한 다음 그 값은 나중에 대입하는 방법이다.
단, 초기값 없이 배열 변수를 만들때에는 반드시 길이에 대한 7과 같은 크기가 필요하다.
즉, 다음과 같은 코드는 불가능하다.

String[] weeks = new String[];    // 길이에 대한 숫자값이 없으므로 컴파일 오류가 발생한다.

--------------------------------------------------------------------------------------------------

위에서 만든 요일의 배열중 "목" 요일에 해당되는 값을 얻으려면 다음과 같이 인덱싱을 이용해야 한다.

String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println(weeks[3]);

weeks[3]은 weeks 배열의 네번째 항목을 의미한다. (자바는 0부터 숫자를 센다.)
다음의 예처럼 요일 배열의 길이는 총 7개인데 만약 8번째 값을 얻으려고 시도하면 이와 같은 오류가 발생한다.

System.out.println(weeks[7]);  // 8번째 배열값이 없으므로 ArrayIndexOutOfBoundsException 오류가 발생한다.

처음에 선언된 크기 이상의 index는 가질 수 없으므로 생긴 오류이다.
즉, 배열을 이용하려면 배열을 생성할 때 크기를 반드시 선언해야 하며,
선언한 크기대로 만들어진 배열의 크기를 수정할 수 없다.

동적으로 크기를 설정하여 배열을 만들어야 할 경우가 있는데
그럴 땐 Array 보단 ArrayList를 쓰는 게 좋다.