배열(Array)이란?
동일한 타입의 연관된 데이터를 메모리에 연속적으로 저장하여 하나의 변수에 묶어서 관리하기 위한 자료 구조(자료형의 집합)이다.
많은 양의 데이터를 다룰 때 유하여 많이 사용한다.
배열 선언 및 사용방법
방법1. 기존 배열의 참조 변수에 초기화 할당
데이터타입 배열변수이름[];
배열변수이름 = new 데이터타입[배열길이];
int testArr[];
testArr[] = new int[3];
String strArr[];
str[] = new String [3];
방법2. 선언과 동시에 배열 크기 할당
데이터타입 배열변수이름[] = new 데이터타입[배열길이];
int testArr[] = new int[3];
String strArr[] = new String[3];
초기화 방법
{} 를 이용하여 해당 배열에 값을 초기화 한다.
방법1.
데이터타입 배열변수이름[] = { value1, value2, ... , valueX};
방법2.
데이터타입 배열변수이름[] = new 데이터타입[]{ value1, value2, ... , valueX};
int[] arr = {1,2,3,4,5};
int[] arr = new int[]{1,3,5,2,4};
String[] weeksArr = {"월","화","수","목","금","토","일"};
String[] weeksArr = new String[]{"월","화","수","목","금","토","일"};
*배열의 길이는 고정되어 있다. 그렇기 때문에 초기값 없이 배열 변수를 만들때에는 반드시 길이에 대한 숫자값이 필요하다.
int testArr[] = new int[]; (X)
int testArr[] = new int[3]; (O)
배열의 값 접근방법
배열변수이름[index값]
index값을 이용하여 해당 배열의 값에 접근할 수 있다.
* 배열의 첫번째는 1이아닌 0부터 시작한다.
Array Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
value | 월 | 화 | 수 | 목 | 금 | 토 | 일 |
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println(weeks[0]); // '월' 출력
System.out.println(weeks[5]); // '토' 출력
//배열의 길이 weeks.length
for(int i=0; i<weeks.length; i++) {
System.out.println(weeks[i]);
}
[ 출력결과 ]
월
화
수
목
금
토
일
* 배열의 길이
생성된 모든 배열은 length라는 멤버 변수를 자동으로 가진다. 이 length멤버 변수에는 해당 배열의 크기(배열요소의 개수)가 저장된다.
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println( weeks.length ); // 길이로는 '7'이 출력된다.
배열의 복사
방법1. for 문을 이용한 복사
int[] arr1 = {100, 200, 300};
int[] arr2 = {1, 2, 3};
for(int i=0; i<arr1.length; i++) {
arr2[i] = arr1[i]; //같은 index에 arr1 -> arr2 value 복사
System.out.println(arr2[i]);
}
[ 출력결과 ]
100
200
300
방법2. arraycopy메서드를 이용한 복사
자바의 배열의 값을 복사할 경우 사용한다.
int[] target = {1, 2, 3, 4, 5, 6};
int[] source = {100, 200, 300, 400, 500, 600, 700, 800, 900};
System.arraycopy(source, 2, target, 0, target.length);
for(int i : target) System.out.println(i);
[출력결과]
300
400
500
600
700
800
* System.arraycopy(src, srcPos, dest, destPos, length);
· src : 복사할 배열 이름
· srcPos : 복사할 배열의 첫 번째 위치
· dest : 복사해서 붙여 넣을 대상 배열 이름
· destPos : 복사해서 대상 배열에 붙여 넣기를 시작할 첫 번째 위치
· length : src에서 dest로 자료를 복사할 요소 개수
빈번한 배열의 오류
배열의 길이보다 큰 값을 얻으려고 시도하면 이와 같은 오류가 발생한다.
ArrayIndexOutOfBoundsException
초기에 정해진 배열의 크기보다 더 큰 인덱스를 호출할 때 주로 발생하게 된다.
int[] arr = {0, 1, 2, 3, 4};
// arr의 길이는 5 이지만, 가장 큰 index의 값은 4이다.
// 4보다 큰 5를 호출하기 때문에 오류가 발생한다.
arr[5] = 4;
'개발공부 > JAVA' 카테고리의 다른 글
JAVA 연산자의 종류 (0) | 2022.03.28 |
---|---|
JAVA API 볼수 있는 곳 (0) | 2021.11.09 |
첨부파일 등록방법 (0) | 2021.10.05 |
문자열 저장 시 JAVA에서 <script> 태그 replace하기 (0) | 2021.09.06 |