배열을 사용하면 자료형이 같은 자료 여러 개를 한 번에 관리할 수 있습니다.
배열은 자료가 연속으로 나열된 자료 구조입니다.

자바에서 배열을 선언하면 그와 동시에 각 요소의 값이 초기화됩니다. 배열의 자료형에 따라 정수눈0, 실수는 0.0, 객체 배열은 null로 초기화되며, 다음처럼 배열 선언과 동시에 특정 값으로 초기화 할 수도 있습니다.
배열이 초기화 요소의 개수만큼 생성되므로 [] 안의 개수는 생략합니다.(넣으면 오류남)
객체 배열
객체 배열은 참조 자료형으로 선언 합니다. 동일한 기본 자료형(int등) 변수 여러 개를 배열로 사용할 수 있듯이 참조 자료형 변수도 여러 개를 배열로 사용할 수 있습니다. 객체 배열은 int나 char 등 기본 자료형 배열과 사용 방법이 조금 다릅니다.


얕은 복사 - 객체 참조 변수의 배열주소를 복사한 경우
깊은 복사 - 객체 참조 변수의 배열 생성후 새로운 객체까지 생성한 후에 복사한 경우
다차원 배열
수학에서 평면을 나타내기 위해 x,y 좌표를 쓰는 것처럼 프로그램에서도 평면을 구현하기 위해 이차원 배열을 사용할 수 있습니다. 예를 들어 바둑이나 체스 게임, 네비게이션 지도 등을 구현할 때 이차원 배열을 활용합니다.


ArrayList 클래스
배열은 사용하는 중에는 배열 길이를 변경할 수 없기 때문에 코드를 수정해야합니다. 혹은 중간에 데이터가 비게 될경우 배열은 중간에 있는 요소를 비워 둘 수 없으므로 배열 요소 위치를 변경해야 합니다.
그래서 자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공합니다.
ArrayList 클래스의 주요 메소드
메소드 | 설명 |
boolean add(E e) | 요소 하나를 배열에 추가압니다. E는 요소의 자료형을 의미합니다. |
int size() | 배열에 추가된 요소 전체 개수를 반환합니다. |
E get(int index) | 배열의 index 위치에 있는 요소 값을 반환합니다. |
E remove(int index) | 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환합니다. |
boolean is Empty() | 배열이 비어 있는지 확인합니다. |

기본 배열에서는 [ ]안에 배열 전체 길이를 미리 지정해야 했습니다. 하지만 ArrayList를 생성할 때는 미리 지정 할 필요 없이 add() 메소드를 사용해 생성자만 호출하면 됩니다. ArrayList는 객체 배열이므로 8~12행과 같이 각 인스턴스를 생성해서 배열의 요소로 추가합니다. 14~17행은 ArrayList 에 있는 인스턴스를 순서대로 가져와서 출력합니다. 요소를 하나 가져오는 메소드는 get()입니다. 매개변수로 몇 번째 요소를 가져올 것인지 지정합니다. size() 메소드는 배열에 유효 값이 저장된 요소 개수를 반환합니다. 21~23행의 향상된 for문 역시 배열의 요소 값을 출력합니다.
배열의 응용 프로그램



5행에서 studentLee를 생성합니다. 학생 ID는 1001, 이름은 Lee입니다. studentLee의 addSubject() 메소드를 호출하여 학생 Lee가 수강 중인 국어, 수학 과목을 studentLee의 subjectList에 추가합니다. 마찬가지로 학생 ID가 1002, 이름은 Kim인 studentKim을 10행에서 생성하고 이번에는 국어, 수학, 영어 3과목을 addSubject() 메소드를 사용하여 추가합니다. showStudentInfo() 메소드를 호출하여 각 학생의 과목별 성적과 총점을 출력합니다.
'Java Programing' 카테고리의 다른 글
9.Static 변수 (0) | 2020.03.30 |
---|---|
5.반복문 (0) | 2020.03.24 |
4-1.제어문 (0) | 2020.03.23 |
3-3.디버깅 에 관한 간단 실습 (0) | 2020.03.20 |
3-1. 실수형 과 논리자료형 실습 (0) | 2020.03.20 |