배열은 많은 양의 데이터를 적은 코드로 처리할 수 있다.
ex) 학생 30명의 성적을 저장하고 평균값을 구하려면?
int score1 = 90;
int score2 = 80;
int score3 = 85;
.....
int score30 = 75;
int sum = score1;
sum += score2;
sum += score3;
...
sum += score30;
int avg = sum / 30;
배열을 사용하지 않고 코드를 작성하면 위와 같이 길어지게 된다.
배열
- 데이터를 연속된 공간에 나열하고 각 데이터에 인덱스(index) 부여한 자료구조
- 같은 타입의 데이터만 저장할 수 있음
- 한번 생성된 배열은 길이를 늘리거나 줄일 수 없음
배열 변수 선언
int[] intArray;
double[] doubleArray;
String [] strARRAY;
int intArray[];
double doubleArray[];
String strArray[];
배열을 선언하기 위해서는 타입 뒤에나 변수 이름 뒤에 대괄호를 붙이면 된다.
보통은 타입 뒤에 대괄호를 붙여 선언하는 경우가 많다.
배열은 참조 타입이기 때문에 선언된 변수에는 배열의 번지가 저장이 된다.
아직 배열이 없다면 null 값으로 초기화된다.
참조할 배열 객체 없는 경우 배열 변수는 null 값으로 초기화한다.
타입[] 변수 = null;
배열 생성
값 목록으로 배열 생성
타입[] 변수 = { 값0, 값1, 값2, 값3, ...};
값 목록으로 생성할 경우 중괄호 사이의 값들을 배열로 생성한 후 그 번지를 변수에 저장한다.
new 연산자를 이용해서 배열 생성
int[] scores = new int[30];
new 키워드 뒤 타입이 오고 대괄호 안에 배열의 길이가 온다.
그렇게 생성된 배열의 번지가 scores에 저장
값 목록을 이용해서 배열 생성
타입[] 변수 = { 값0, 값1, 값2, 값3, ...};
int[] scores = {90, 95, 87, 93, ...};
for문을 통해 총합과 평균을 구한 예제이다.
배열 변수 선언한 뒤에는 다른 실행문에서 값 목록으로 배열 생성 불가능
타입[] 변수;
변수 = {값0, 값1, 값2, 값3, 값4...}; //컴파일 에러
컴파일 에러가 발생한다.
배열 변수 미리 선언한 후 값 목록이 나중에 결정되는 경우
new 연산자 사용하여 값 목록 지정
변수 = new 타입[] {값0, 값1, 값2, 값3, ...};
String[] names = null;
names = new String[] {"신용권", "홍길동", "김자바"};
new연산자와 해당 타입을 같이 선언해주어야 에러가 발생하지 않는다.
new연산자를 사용하는 방식보다 값 목록으로 배열을 생성하는 방식을 주로 사용하지만
메서드 호출을 이용한 방식에서는 new연산자를 사용해주어야 한다.
new 연산자로 배열 생성
타입[] 변수 = new 타입[길이];
배열 변수가 선언된 경우
타입[] 변수 = null;
변수 = new 타입[길이];
new 연산자로 배열 처음 생성할 때 배열은 자동적으로 기본값으로 초기화가 된다.
ex) int 배열
int [] scores = new int[30];
ex) String 배열
String[] names = new String[30];
double 타입의 기본값으로는 0.0이 저장된다.
배열 생성 후 특정 인덱스 위치에 새 값 저장하는 방법
scores[0] = 83;
scores[1] = 90;
배열 길이: 배열에 저장할 수 있는 전체 요소 수
int[] intArray = {10, 20, 30};
int num = intArray.length;
배열의 길이가 필요한 값에 사용할 수 있다.
'JAVA > 혼자공부하는자바' 카테고리의 다른 글
[JAVA 기초] 자바 배열 3 (다차원 배열) (0) | 2020.12.17 |
---|---|
[JAVA 기초] 자바 배열 2 (명령라인에서의 실행) (0) | 2020.12.16 |
[JAVA 기초] 참조 타입과 참조 변수 2 (New 연산자, equals 연산자) (0) | 2020.12.14 |
[JAVA 기초] 참조 타입과 참조 변수(==/!=연산, NullPointerException) (0) | 2020.12.11 |
[JAVA 기초] 자바 반복문 (for문, while문, do-while문, break, continue, label) (0) | 2020.12.11 |