개발공부/JAVA

JAVA 배열(Array)에 대해 알아보기

SA-WOL 2022. 4. 4. 13:25
반응형

배열(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;  

 

 

참고자료 https://wikidocs.net/206

 

03-06 배열 (Array)

지금까지 우리는 숫자와 문자열에 대해서 알아보았다. 하지만 이러한 것들로 프로그래밍을 하기엔 부족한 점이 많다. 예를 들어 1부터 10까지의 숫자들 중 홀수들의 모임인 1, ...

wikidocs.net

 

반응형

'개발공부 > JAVA' 카테고리의 다른 글

JAVA 연산자의 종류  (0) 2022.03.28
JAVA API 볼수 있는 곳  (0) 2021.11.09
첨부파일 등록방법  (0) 2021.10.05
문자열 저장 시 JAVA에서 <script> 태그 replace하기  (0) 2021.09.06