1. Array?
- 많은 양의 데이터를 적은 코드로 손쉽게 처리할 수 있음
- 같은 Type의 데이터를 연속된 공간에 나열하고, 각 데이터에 Index를 부여해놓은 자료구조를 말함
- ex) String[] students = new Student[2]; // student[index];
2. Array 특징?
- 같은 Type의 Data만 저장 할 수 있음
- int Array는 int value만 저장 가능하고, String Array는 String만 가능함
- 선언과 동시에 저장할 수 있는 Type이 결정됨
- int type으로 설정하였는데, 다른 Type의 값을 저장할려고 하면 Type Mismatch(타입 불일치)로 컴파일 에러가 발생함
- 한 번 생성된 Array는 길이를 늘리거나 줄일 수 없음
- 3개의 값을 저장하고 Array를 생성했다고 한다면, 프로그램 실행중에 5개의 값을 저장하는 Array로 수정 할 수 없으며, 반대로 2개의 값만 저장하는 Array로 수정할 수 도 없음!
- 설정한 값을 수정해서 사용할려면, 새로운 Array를 생성하고, 기존 Array 항목을 새 Array로 복사해서 사용해야함!
3. Array 선언?
- 배열을 사용하기 위해서는 우선 배열 변수를 선언해야함
- ex1) Type[] Variable;
- ex2) Type Variable[];
- [ ] : 대괄호는 Array Variable을 선언하는 기호로 사용되는데, Type뒤에 붙을 수 도 있고, Variable 뒤에 붙을 수 도 있음
- Type은 Array에 저장될 Data의 Type을 말함
- ex1-1) int[] intArr;
- ex2-1) int intArr[];
- Array Variable는 **Reference Type(참조변수)**에 속함
- Array도 Object이므로 Heap 영역에 생성되고 Array Variable는 Heap영역의 Array Object를 참조함
- 참조할 Array Object가 없다면 Array Variable은 null값으로 초기화 될 수 있음
- Array Vairable이 null값을 가진 상태에서 Variable[index]로 값을 읽거나 저장하게 되면 NullPointerException이 발생함
- Array를 생성하고 Array Variable이 참조하는 상태에서 값을 저장하거나 읽어야함!
4. Array 생성?
- Array Object를 생성하려면 값 목록을 이용하거나 **new Operator(연산자)**를 이용하는 방법이 있음
- 값 목록 ⇒ Array 생성
- 값의 목록이 있다면 간단하게 Array Object를 생성할 수 있음
- Type[] Variable = { value0, value1, …, valueN };
- { } : 주어진 값들을 항목으로 가지는 Array Object를 Heap에 생성하고, Array Object의 **번지[index]**를 **Return[반환해줌]**함
- 값의 목록으로 Array Object를 생성할때 주의점은 Array Variable를 이미 선언한 후에 다른 실행문에서 중괄호를 사용한 Array생성이 허용되지 않음!
- [Error] Type[] Variable; ⇒ Variable = { value0, value1, … }; << 컴파일 에러가남!
- 미리 선언한 후 값 목록들이 나중에 결정되는 상황일때 new Operator를 사용해 값 목록을 지정해주면 됨
- new Operator 바로 뒤에는 Array Variable 선언에서 사용한 “Type[ ]”을 붙여주고 **중괄호{ }**에는 값들을 나열해주면 됨
- Variable = new Type[]{ value0, value1, … };
- Method의 매개값이 Array일 경우에, 매개 변수로 Type[ ] Array이 선언된 **Method()**가 있을 경우, 값 목록으로 Array으로 Array을 생성함과 동시에 Method의 매개값으로 사용하고자 할 때는 반드시 new Operator를 사용해야함
- Type Method( Type[ ] Variable ) { … };
- Type Variable = Method( { value0, value1, value2 } ); [Compile Error]
- Type Variable = Method( new Type[] { value0, value1, value2 } );
- new Oporator(연산자) ⇒ Array생성
- 값의 목록을 가지고 있지 않지만, 향후 값들을 저장할 Array를 미리 만들고 싶다면 new Operator로 Array Object를 생성 할 수 있음
- Type[ ] Variable = new Type[ Length ];
- Length(길이)는 Array가 저장할 수 있는 값의 개수를 말함
- 이미 Array Variable에 선언된 경우에도 new Operator로 Array을 생성 할 수 있음
- Type[ ] Variable = null;
- Variable = new Type[ Length ];
- int[] intArr = new int[3];