배열(array)
▶배열(array)
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
일정한 자료형의 변수들을 하나의 이름으로 열거하여 사용하는 자료구조
▶선언과 생성
방법 | int[] age; // int타입의 배열을 다루기 위한 참조변수 age age = new int[7]; // new 연산자가 sizeof(int)*7 만큼의 메모리를 할당하고 시작주소 값을 반환한다. |
int[] age = new int[7]; |
명시적으로 초기화 해주지 않으면 기본 초기화 값으로 초기화 된다.
타입 | 기본 초기화 값 |
int, float, double | 0 |
boolean | false |
char | null ('\u0000') |
참조형 | null |
▶초기화
방법 | for(int i = 0 ; i < age.length ; i++) { // JVM이 모든 배열의 길이를 관리한다. '배열이름.length'로 접근 가능. age[i] = 20+i; |
int[] age = new int[7] { 20, 21, 22, 23, 24, 25, 26 } ; |
method ( new int[] { 20, 21, 22, 23, 24, 25, 26 } ) ;
메소드의 인자값으로 배열을 넣을 때 이렇게 초기화하는 것도 가능하다.
길이가 0인 배열 생성도 가능하다.
int[] age = new int [0];
int[] age = new int[];
int[] age = { };
▶배열 내용 확인
System.out.println( Arrays.toString( age ) ); // [ 21, 22, 23, 24, 25, 26 ] 출력
import java.utill.*; 을 추가해줘야 한다.
예외적으로 char형 배열은 배열 이름만 넣어도 구분자 없이 그대로 출력된다.
▶배열 길이 변경
더 큰 배열을 새로 생성하여 기존 배열의 내용을 복사하면 된다.
일반적으로 기존 배열 크기의 2배 크기의 배열을 새로 생성한다.
▶배열 복사
for문으로 요소 하나씩 값을 복사하는 것 보다
System.arraycopy()를 사용하는 것이 효율적이다.
System.arraycopy ( 기존배열, 시작인덱스, 새로운배열, 시작인덱스, 복사할 개수 );
System.arraycopy(oldAge, 0, newAge, 0, oldAge.length);
이렇게 하면 newAge에 oldAge의 모든 내용이 복사된다.
복사하려는 내용보다 여유 공간이 적으면 ArrayIndexOutOfBoundsException이 발생
'□ 이론 > 기타' 카테고리의 다른 글
JSP 개념 정리 (0) | 2019.04.17 |
---|---|
JavaScript 기초 개념 정리 (0) | 2019.03.29 |
스프링 프레임워크 기본 개념 정리 (0) | 2019.03.27 |
C++에서의 string 클래스 (0) | 2018.11.19 |
StringTokenizer class (스트링 토크나이저 클래스) (0) | 2018.11.12 |