티스토리 뷰
배열
- 연관된 데이터를 그룹핑해서 관리하기 위한 방법
- 하나의 변수에 여러 정보를 담을 수 있다
- 반복문과 결합하여 효율적으로 사용이 가능
- 인덱스를 통해 빠른 데이터 조회 가능
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 이 발생
'Development > 자료구조&알고리즘' 카테고리의 다른 글
[자료구조] 리스트(List/ ArrayList / LinkedList) (0) | 2017.09.01 |
---|---|
[자료구조] 추상자료형(ADT) (0) | 2017.08.31 |
[자료구조/알고리즘] 퀵정렬(quick sort) (0) | 2017.08.22 |
[자료구조/알고리즘] 삽입정렬(insertion sort) (0) | 2017.08.22 |
[자료구조/알고리즘] 합병정렬(merge sort) (0) | 2017.08.18 |
- Total
- Today
- Yesterday
- 자료구조
- 해시알고리즘
- mysql데이터타입
- HTTP
- hash알고리즘
- 400 badgateway
- mac db설치
- org.springframework.beans.factory.BeanDefinitionStoreException
- 스프링 부트 시작 에러
- 알고리즘
- 큐
- mariadb데이터 타입
- mac mariadb 설치
- mariadb
- mac mariadb
- 스프링 부트 에러
- 400 error
- mariadb 데이터타입
- Stack
- mysql 데이터 타입
- springframewor
- 스택
- 데크
- mysql 세팅
- Data Structure
- mysql데이터
- spring boot 시작 에러
- spring boot org.springframework.beans.factory.BeanDefinitionStoreException
- mariadb설치
- hash algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |