오라클자바커뮤니티에서 설립한 개발자실무교육6년차 오엔제이프로그래밍 실무교육센터
(신입사원채용무료교육, 오라클, SQL, 튜닝, 자바, 스프링,
Ajax, jQuery, 안드로이드, 아이폰, 닷넷, C#, ASP.Net) www.onjprogramming.co.kr
배열이란? 배열도 객체 이며 ,,, 그래서 Memory Heap에 메모리가 할당
됩니다. 동일한 자료형을 갖는 자료의 배열이며, 배열 선언은 선언할때 크기 명시 안 한다는곳 기억 하시구요.. int[] a; ( 혹은 int a[];)
배열에 Access 하기 위한 첨자는 int 형 이며 long 인 경우에는 Type Casting을 해야 합니다.
배열 생성
a = new int[3];
int[] a = {1, 2, 3};
int[] a; a = new int[] {1, 2, 3};
배열 길이
a.length
배열의 재사용
int[] a = {1, 2, 3};
a = new int[50]; //이때 이전의 배열a의 내용은 버려지며 새로운 메모리 공간이 할당 됩니다.
[예제]
class ArrayTest {
public static void main( String[] args ) {
int[] a = {1, 2, 3}; // int형 배열 선언 및 값 할당
int a2[]; // int형 배열 선언
a2 = new int[] {7, 8, 9, 10, 11}; // 이름 없는 배열 생성
System.arraycopy(a, 0, a2, 3, 2); //배열을 복사(a라는 배열의 0번째를 a2라는 배열의 3번째 인덱스 부터
//2개 복사하라는 의미 입니다. a2는 7,8,9,1,2가 되겟네요...
System.out.println( a.length ); // 3
for(int i = 0; i < a.length; ++i) >
System.out.print( a[i] + " "); // array
// 스트링 객체의 참조값의 배열 생성
String[] as = { "i", "am", "boy", };
String[] as2 = { "me", "to", };
System.out.println("\n" + as.length ); // 3
for(int i = 0; i < as.length; ++i) >
System.out.print( as[i] + " "); //i am boy
as = as2;
System.out.println("\n" + as.length ); // 2
for(int i = 0; i < as.length; ++i) >
System.out.print( as[i] + " " ); //me to
as2 = null;
}
}
[결과]
3
1 2 3
3
i am boy
2
me to
배열의 배열 ( 다차원 배열 )
배열은 또 다른 배열을 포함 할 수 있으며 하위 배열은 모두 다른 크기를 가질 수 있습니다. 이를 자바에서는 배열의배열의 형태로 다룰 수 있습니다. 예를들면 1행은 열이 2개, 2행은 열이 3개,,, 이런게 가능하다는 이야기죠^^;;;
[예제]
class MultiArrays {
public static void main(String[] args) {
String[][] 자동차 = {
{"그랜져","소나타","아반테"},
{"매그너스","누비라"},
{"카니발","세피아"}
};
for(int i=0; i<자동차.length; i++) { >
System.out.print(자동차[i].length + ":");
for(int j=0; j<자동차[i].length; j++) { >
System.out.print(자동차[i][j] + " ");
}
System.out.print("\n");
//System.out.println();
}
}
}
[결과]
3:그랜져 소나타 아반테
2:매그너스 누비라
2:카니발 세피아
배열의 예외
NegativeArraySizeException : 음수크기를 갖는 배열 객체를 만들고자 할때 발생 합니다.
ArrayStoreException : 배열의 자료형과 틀린 자료값을 저장 할려고 하는 경우에 발생 합니다. 예를들면 int형 배열을 선언하고 3.3 이라는 값등을 넣을때 나는 오류 입니다.
ArrayIndexOutOfBoundsException : 배열의 첨자 범위를 벗어 났을때 발생 합니다. A라는 배열을 방2개짜리로 만들면 인덱스는 0, 1을 가질수 있는데 A[2]라는 형태로 사용하는 경우 나는 오류 입니다.
NullPointException : null 값을 갖는 배열 객체 참조 변수를 참조하려고 할때 발생 합니다.
댓글 없음:
댓글 쓰기