# 배열(arrays)
관련 데이터를 하나로 묶는 방법!
## 실생활 배열들
---
책을 1권, 2권,… 순서로 정리하면 편리하다. 한 학급의 학생 이름도 번호를 붙이면 관리에 좋다. 프로그램도 마찬가지다. 관련 데이터를 순서대로 관리하면 좋다.
![클라우드스터딩-자바-배열-들어가며](https://i.imgur.com/dYHOPNY.png)
## 배열이란?
---
#### 정의
여러 값을 하나의 변수로 묶은 것. 이를 배열(arrays)이라 한다. 아래 코드는 9명의 학생 성적을 int타입 배열에 담은 예이다.
```
int[] scores = { 65, 74, 23, 75, 68, 96, 88, 98, 54 };
```
#### 특징
배열은 인덱스(index)라는 순서를 가지며, 모든 값의 타입이 같다.
![클라우드스터딩-자바-배열-특징](https://i.imgur.com/GNL2OTV.png)
## 배열 사용법
---
#### 생성하기
배열은 보통 두 가지 방법으로 만든다.
```
// 1) 생성과 동시에 초기화
double[] arr = { 1.5, 3.2, 4.3, 0.9 }; // double 형 배열 생성
String[] names = { "Tom", "Kate", "Paul", "James" }; // String 배열 생성
// 2) 공간 할당 후 값 대입
int[] ids = new int[3]; // int형 배열 ids 공간 할당
ids[0] = 100; // 값 대입
ids[1] = 200; // 값 대입
ids[2] = 300; // 값 대입
```
#### 배열 요소 사용법
배열의 요소는 인덱스를 통해 사용한다.
```
// 1) 배열 값 읽기(read)
int[] scores = {99, 88, 77};
System.out.println(scores[0]); // 99
System.out.println(scores[1]); // 88
System.out.println(scores[2]); // 77
// 2) 배열 값 변경(write)
System.out.println(scores[0]); // 99
scores[0] = 0; // 0번 인덱스 값 변경
System.out.println(scores[0]); // 0
```
## 배열의 활용
---
#### 반복문과 함께 사용
배열을 보통 반복문과 함께 활용된다.
```
// 배열의 총합 구하기, 노가다 버전
int[] arr = { 7, 9, 31, 2, 6 };
int sum = arr[0];
sum += arr[1];
sum += arr[2];
sum += arr[3];
sum += arr[4];
// 반복문을 사용하여 개선
sum = 0;
for (int i = 0; i < 5; i++) {
sum += arr[i]
}
```
#### length 키워드
`length` 키워드로 배열의 길이를 알 수 있다.
```
String[] names = {"Kim", "Lee", "Park", "Choi", "Oh", "Jo"};
int[] mathScores = {82, 76, 100, 92, 68, 96};
for (int i = 0; i < names.length; i++) {
System.out.printf("%s : %d\n", names[i], mathScores[i]);
}
```
## 요약
---
![클라우드스터딩-자바-배열-요약](https://i.imgur.com/xev9Ruk.png)
- 배열이란 데이터의 묶음이다.
- 배열은 인덱스가 있고, 모두 같은 타입이다.
- 인덱스는 0부터 시작한다.
- length 키워드로 배열의 길이를 얻을 수 있다.
- 배열은 보통 반복문과 함께 활용된다.
## 확인하기
---
<div class="interact_responsive_padding" style="padding:100% 0 0 0;position:relative;margin-bottom:5px;"><div class="interact_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe id="interactApp5cc6594f3aa2410014c34536" width="100%" height="100%" style="border:none;max-width:100%;margin:0;" allowTransparency="true" frameborder="0" src="https://quiz.tryinteract.com/#/5cc6594f3aa2410014c34536/q/1?method=iframe"></iframe></div></div>
## 도서구매
<a href="http://www.yes24.com/Product/Goods/104740689"><img src="http://image.yes24.com/goods/104740689/XL" width="50%" /></a>