티스토리 뷰

배열

- 연관된 데이터를 그룹핑해서 관리하기 위한 방법

- 하나의 변수에 여러 정보를 담을 수 있다

- 반복문과 결합하여 효율적으로 사용이 가능

- 인덱스를 통해 빠른 데이터 조회 가능


Java에서의 배열

배열 생성

- int[] 변수명 ; 으로 선언

- 배열도 객체이므로 new연산자를 사용해 생성

ex) 

int[] numbers = new int[6]; // 크기6을 갖는 numbers 라는 int타입의 1차원 배열 생성

String[] strings = new String[100]; // 크기 100을 갖는 strings 라는 String타입의 1차원 배열 생성



배열의 값

- 배열의 값은 배열의 인덱스를 이용하여 접근한다

ex)

numbers[0] = 1 ; // 정수형 배열 numbers 의 첫번째 칸에 정수 1을 저장한다

numbers[1] = 2 ; // 정수형 배열 numbers 의 두번째 칸에 정수 2를 저장한다

numbers[2] = 3; // 정수형 배열 numbers 의 세번째 칸에 정수 3을 저장한다


strings[0] = "안녕하세요" ; // String 타입 배열 strings의 첫번째 칸에 문자열 "안녕하세요"를 저장한다

strings[1] = "abc"; // String 타입 배열 strings의 두번째 칸에 문자열 "abc"를 저장한다




배열의 크기(길이)

- 배열의 크기는 배열을 생성할 때 지정

- 생성된 배열의 크기는 변경 불가

- 배열의 크기는 .length 

ex)

int size1 = numbers.length ; // 배열 numbers 의 크기를 size1 라는 변수에 저장 

int size2 = strings.length ; // 배열 stings 의 크기를 size2 라는 변수에 저장



다차원 배열

- 다차원 배열도 생성 가능

- 다차원 배열을 정방형 구조만 생성가능한 것은 아니다

- int[][] : 2차원 배열

- int[][][] : 3차원 배열

- 위와 같이 다차원 배열을 생성가능

ex)

int[][] twoDimensionArray = new int[3][4] ; // twoDimensionArray라는 3X4 형태의 2차원 배열을 생성



배열과 반복

- 모든 자료구조는 반복과 밀접한 관계를 갖는다

- 자료구조에서 데이터를 효율적으로 처리하기 위해서 반복문을 사용한다

ex)

for( int i = 0 ; i < numbers.length ; i++) { 

System.out.println( numbers[i] ) ;


// 반복문(for문)을 사용하여 배열 numbers의 값을 출력


배열의 한계

- 배열의 크기는 배열을 생성할 때 지정해야되며 변경이 불가능

그러나 데이터 크기가 확정적일 때 메모리나 처리속도 측면에서 유리함

- 데이터가 삭제되면 삭제된 상태를 빈공간으로 남겨둬야 함

메모리의 낭비 초래


배열의 오류

ArrayIndexOutOfBoundsException

- 배열을 사용하다 보면 많이 접하게 되는 오류

- 배열을 사용할 때 배열의 크기를 벗어나는 경우에 발생

- 예를들어 배열의 크기가 3일때 배열의 4번째 값을 접근하려고 할 때 발생

- java.lang.RuntimeException의 하위 클래스인 java.lang.IndexOutOfBoundsException의 하위클래스

ex)

int[] array = new int[6];  // 배열 array의 크기는 6


System.out.print( array[6] ); // 배열의 7번째 값을 출력하려고 할때 ArrayIndexOutOfBoundsException 이 발생



댓글