배열
눈으로 셀 수 있는 데이터를 저장하는 건 어렵지 않습니다
하지만 백개,천개가 넘는 데이터를 다뤄야 한다면 '배열'(array)를 사용해야 합니다.
배열은 여러개의 데이터를 한꺼번에 저장할 수 있는 공간입니다.
배열의 선언 방법은
자료형[] 변수명 = new 자료형[배열의 크기];
자료형 변수명[] = new 자료형[배열의 크기]; 로 나눠집니다
예를 들어 변수 이름이 score 이고 크기가 5인 배열을 만들고 싶으면
이렇게 선언 하면 됩니다. 이렇게 하면 score라는 변수가 5 크기만큼의 공간이 생깁니다.
그리고 인덱스(index)라는 번호를 부여 받게 됩니다
처음에 시작하는 배열은 0, 두번째 시작하는 배열은 1, 세 번째 시작하는 배열은 2.....
마지막은 배열의 크기가 n이라고 했을 때 인덱스는 n-1이 됩니다.
배열은 선언 시 정수형 배열이라면 모든 공간이 0으로 초기화가 됩니다.
실수형 배열이라면 0.0으로 초기화가 됩니다.
직접 배열에 값을 지정해주고 싶으면
이런 방법으로 하면 됩니다. 여기에 Scanner 클래스까지 같이 사용한다면
입력받는 값을 배열에 넣을 수 있습니다.
만약 배열의 담긴 값을 출력하고 싶다면
저기서 score.length는 배열 score의 크기를 의미합니다 score의 length만큼! 배열의 길이를 알 수 있습니다.
여기서 score가 아닌 score[i]를 넣은 이유는 출력문에 배 열명을 넣게 되면 참조값이 나오게 됩니다
그래서 배열에 들어간 인덱스가 출력되는 것이 아닌
실제 메모리의 위치 값이 출력하게 됩니다.
배열을 한 번에 출력하는 다른 방법은 Arrays클래스를 이용하는 방법입니다
그럼 친절하게 가로 안에 넣어줍니다. Arrays 클래스를 사용하려면
상단에 import java.util.Arrays 를 추가해줘야 합니다.
위 코드는 data1, data2, data3이라는 배열을 int 형으로 선언한 것이고
아래 코드는 number 1 []만 배열로 선언되고 number2 number3은 정수형 변수로만 선언된 것입니다.
배열에 배열을 대입할 수 도 있습니다
위와 같은 방법으로 배열의 대입이 가능합니다. 복사 또한 가능한데 여기서는 다루지 않겠습니다.
다음은 2차원 배열입니다.
1차원도 많이 사용되지만 2차원이 필요한 경우도 반드시 생깁니다.
3행 4열을 가지는 2차원 배열을 선언하는 방법은
위와 같이 선언하시면 됩니다. 대표적으로 2차원 배열을 사용하는 경우는
구구단 출력할 때 연습합니다.
다음은 배열에서 유용한 for.... each 구문을 알아보겠습니다
표현은
for(자료형 변수:배열){
반복 처리할 문장
} 으로 이루어졌고
유의할 점은 자료형 변수 옆에 ':'이 붙는다는 것입니다.
정말 쉽게 코딩하면
x에 data의 원소들이 하나씩 차례대로 저장되면서 for 반복문 문장들을 수행하게 됩니다.
따라서 x 앞에 붙는 자료형은 배열에 저장된 데이터의 자료형이 됩니다.
조금 응용해서 점수들의 평균을 구하는 코드는
위와 같이 나타낼 수 있습니다. 각각의 점수들이 있고 배열을 담을 sum이라는 공간이 있습니다
for each구문으로 s라는 double형에 score의 원소들을 담고
total +=s; 통해 원소들의 값을 모두 더해줍니다.
그리고 배열의 길이만큼 나눠줘서 평균을 구해줍니다.
for each 구문은 자료형을 맞추는 것이 중요합니다.