자바의 정석 책을 공부하고 정리한 글입니다!
혹시라도 틀린 부분이 있다면 친절하게 알려주세요.
감사합니다!
CH5. 배열
배열이란 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 말합니다. 생성 방법은 다음과 같습니다.
타입[] 변수이름;
변수이름 = new 타입[길이];
// 혹은
타입[] 변수이름 = new 타입[길이];
다음은 배열의 크기가 5인 int형 배열을 생성하는 코드입니다.
int[] score = new int[5]; // 크기가 5인 int형 배열 생성
score은 int형 데이터를 5개 저장할 수 있는 배열이 되는 것입니다!
배열을 이해하려면 다음의 용어에 익숙해지셔야 합니다!
- 배열의 요소: 생성된 배열의 각각의 저장공간을 말함: '배열이름[인덱스]'로 접근 가능
- 인덱스: 배열의 요소마다 붙여진 일련번호로 각 요소를 구별하는데 사용됨 -> 요소의 순서 번호로 생각
보통 순서를 정할 때, 1번부터 순서번호를 지정하잖아요? 그런데 인덱스는 1번부터 시작이 아닌, 0번부터 시작입니다! 따라서 인덱스의 범위는 0부터 배열길이-1 까지 입니다. 위의 score 배열의 경우는 배열의 길이가 5이며, 인덱스 범위는 0부터 4까지(0, 1, 2, 3, 4) 입니다.
배열을 생성할 때 [] 안에 꼭! 저장할 공간의 개수(=배열의 길이) 작성해주셔야 합니다. 이 길이는 배열의 요소의 개수, 즉 값을 저장할 수 있는 공간의 개수입니다! 그러니 양의 정수 값을 적어야 하겠죠? (물론 0도 가능합니다.)
자바에서는 JVM이 모든 배열의 길이를 별도로 관리하며, '배열이름.length'로 배열의 길이를 구할 수 있습니다. 아까의 score 배열의 경우 다음과 같이 작성할 수 있습니다:
int length = score.length;
이렇게 되면 변수 length에 score의 길이인 5가 저장됩니다!
배열은 한 번 생성하면 길이를 변경할 수 없기 때문에 생성된 배열의 길이는 변경할 수 없습니다.
만약 배열의 길이를 변경하고 싶다면 다음과 같은 방법을 사용할 수 있습니다:
- 더 큰 배열을 새로 생성한다.
- 기존 배열의 내용을 새로운 배열에 복사한다.
배열의 초기화
배열을 초기화하는 방법은 다음과 같습니다:
// 1.
int[] score = new int[5];
score[0] = 10;
score[1] = 20;
score[2] = 30;
score[3] = 40;
score[4] = 50;
// 2.
int[] score = new int[] {10, 20, 30, 40, 50};
// 3.
int[] score = new int[5];
score = {10, 20, 30, 40, 50};
// 4.
int[] score = {10, 20, 30, 40, 50};
위의 코드는 모두 score 배열에 차례로 10, 20, 30, 40, 50 을 저장하는 방법입니다! 그럼 0번 인덱스부터 10, 20, 30, 40, 50 이 차례로 저장되는 것이지요.
초기화를 안 하는 경우도 있는데, 이 경우에는 default값으로 초기화 됩니다.
- int형 배열의 default 값은 0
- String형 배열의 default 값은 null
2차원 배열의 선언과 인덱스
2차원 배열을 선언하는 방법은 1차원 배열과 같습니다.
다만 [] 가 하나 더 들어갈 뿐입니다!
int[][] score = new int[4][3]; // 4행 3열의 2차원 배열을 생성 (배열의 크기는 4X3)
배열 초기화는 다음과 같이 진행합니다.
// 1.
int[][] arr = new int[][]{{1, 2, 3}, {4, 5, 6}};
// 2.
int[][] arr = {{1, 2, 3}, {4, 5, 6}};
'도서 정리 > 자바의 정석' 카테고리의 다른 글
[자바의 정석] CH06 객체지향 프로그래밍Ⅰ (2) (2) | 2025.04.09 |
---|---|
[자바의 정석] CH06 객체지향 프로그래밍Ⅰ (1) (2) | 2025.04.07 |
[자바의 정석] CH04 조건문과 반복문 정리 (0) | 2025.04.03 |
[자바의 정석] CH03 연산자 정리 (1) | 2025.04.02 |
[자바의 정석] CH01-02 정리 (1) | 2025.04.01 |