728x90
배열
- 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조
- 요소(element) : 배열이 가진 각 값들
- 인덱스(index) : 배열의 각 요소가 부여받는 순번(0부터 시작)
배열의 차원
- 배열의 요소가 또 다른 배열인 경우 배열이 중첩된 정도
- 1차원 배열 : 배열의 중첩이 없는 경우 e.g. { 1, 2, 3, 4 }
- 다차원 배열(2차원 배열, 3차원 배열, ...) : 배열이 중첩된 경우 e.g. { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }
1차원 배열
- 배열 선언
// 배열을 가리킬 참조 변수 temperatureOfJuly 선언
double[] temperatureOfJuly;
// 31개의 double형을 저장할 수 있는 배열을 생성하고, 배열 첫 번째 요소의 주소값이 temperatureOfJuly에 할당됨
temperatureOfJuly = new double[31];
- 선언과 초기화를 한 문장에 작성
// 1
double[] temperatureOfJuly = new double[31];
// 2
double[] temperatureOfJuly = new double[] { 27.4, 30.1, ... , 31.8 };
// 3
// 한 문장으로 작성하면 new double[] 생략 가능
double[] temperatureOfJuly = { 27.4, 30.1, ... , 31.8 };
- 배열 값 접근 : [인덱스]
temperatureOfJuly[0], temperatureOfJuly[1], ... , temperatureOfJuly[30]
- 배열 길이: length
System.out.println(temperatureOfJuly.length); // 31
2차원 배열
- 배열 선언
int[][] kcal; // 한달 간 세끼 식사의 칼로리를 기록할 kcal 배열 선언
kcal = new int[31][3]; // { { 0, 0, 0 }, { 0, 0, 0 }, ... , { 0, 0, 0 } }
- 선언과 초기화를 한 문장에 작성
// 1
int[][] kcal = new int[31][3];
// 2
int[][] kcal = new int[][] {
{ 1982, 2098, 2130 },
{ 2242, 2431, 2198 },
...
{ 2278, 2391, 2006}}
}
// 3
int[][] kcal ={ // 한 문장으로 작성하면 new int[][] 생략 가능
{ 1982, 2098, 2130 },
{ 2242, 2431, 2198 },
...
{ 2278, 2391, 2006}}
}
가변 배열
- 배열이 2차원 이상일 때, 마지막 차수에 해당하는 배열의 길이를 고정하지 않아도 되며, 이러한 배열을 가변 배열이라고 함
- 배열 선언
int[][] ages = new int[5][];
- new int[]를 사용하여 내부배열을 생성하고 외부 배열의 각 요소에 할당
ages[0] = new int[5]; -> Arrays.toString(ages[0]) = [0, 0, 0, 0, 0]
ages[1] = new int[6]; -> Arrays.toString(ages[1]) = [0, 0, 0, 0, 0, 0]
- 일반적인 배열과 같이 생성과 초기화를 동시에 할 수 있음
int[][] ages = {
{ 30, 32, 39, 59, 23 },
{ 31, 41, 52, 56, 72, 13},
...
{ 13, 14}
}
반복문을 통한 배열 탐색
- 인덱스와 배열의 크기(length)를 활용하여 배열 탐색
- for문
int[] scores = { 100, 90, 60, 70, 85 };
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
}
System.out.println(sum); // 405
- while문
int[] scores = { 100, 90, 60, 70, 85 };
int sum = 0;
int i = 0;
while (i < scores.length) {
sum += scores[i++];
}
System.out.println(sum); // 405
- 향상된 for문 : 배열의 값을 읽어오는 것만 가능하고, 수정은 불가능
int[] scores = { 100, 90, 60, 70, 85 };
int sum = 0;
for (int score: scores) {
sum += score;
}
System.out.println(sum); // 405
728x90
'백엔드 개발자 공부 > Java' 카테고리의 다른 글
[Java] JSON (0) | 2022.09.21 |
---|---|
[Java] 재귀 함수 (0) | 2022.09.20 |
[Java] 제어문 (2) - 반복문 (0) | 2022.08.31 |
[Java] 제어문 (1) - 조건문 (0) | 2022.08.31 |
[Java] 연산자 & 콘솔입출력 (0) | 2022.08.30 |