Java 배열 정리
1. 배열의 정의
- 배열(Array): 동일한 자료형의 값을 연속된 메모리 공간에 저장하기 위한 자료 구조입니다.
배열은 인덱스를 통해 각 요소에 접근하며, 0부터 시작하는 인덱스를 가집니다.
2. 배열의 3요소
- 배열의 이름: 배열을 식별하기 위한 변수 이름.
- 인덱스: 배열 요소에 접근하기 위해 사용하는 숫자(0부터 시작).
- 요소: 배열에 저장된 개별 값.
예제:
int[] numbers = {10, 20, 30};
// 배열 이름: numbers
// 인덱스: 0, 1, 2
// 요소: 10, 20, 30
3. 배열의 특징
- 동일한 자료형의 데이터만 저장 가능.
- 고정된 크기: 배열 생성 시 크기를 지정하며, 크기를 변경할 수 없습니다.
- 인덱스를 통한 접근: 인덱스는 0부터 시작.
- 연속된 메모리 공간에 저장되어 효율적.
4. 배열의 장점
- 빠른 데이터 접근: 인덱스를 사용하여 O(1) 시간 복잡도로 요소에 접근 가능.
- 단순한 데이터 관리: 다수의 데이터를 하나의 변수로 관리 가능.
- 효율적인 메모리 사용: 연속된 메모리 사용으로 캐시 친화적.
- 정렬 및 검색이 용이: 정렬, 이진 탐색 등 알고리즘 적용이 쉬움.
5. 배열의 단점
- 크기 변경 불가: 배열의 크기는 초기화 시 고정되며, 런타임에 크기를 변경할 수 없습니다.
- 동일한 자료형만 저장: 서로 다른 자료형의 데이터를 저장하려면 객체 배열을 사용해야 함.
- 메모리 낭비 가능성: 배열 크기 초과 요소를 사용하지 않으면 메모리 낭비.
- 삽입 및 삭제 비효율적: 요소를 추가하거나 삭제할 경우 배열을 복사해야 함.
6. 배열의 선언 방법
6.1 선언과 초기화 분리
배열 선언:
int[] numbers; // 배열 선언
배열 초기화:
numbers = new int[5]; // 크기가 5인 정수 배열 생성
6.2 선언과 초기화를 동시에
배열 선언과 초기화를 동시에 수행:
int[] numbers = new int[5]; // 크기가 5인 배열 생성
6.3 초기값을 이용한 초기화
배열 요소를 직접 지정:
int[] numbers = {10, 20, 30, 40, 50}; // 크기 5, 초기값 지정
6.4 다차원 배열
2차원 배열:
int[][] matrix = new int[3][4]; // 3행 4열 배열 생성
선언과 초기화:
int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
7. 배열 예제
public class ArrayExample {
public static void main(String[] args) {
// 1. 배열 선언과 초기화
int[] numbers = {10, 20, 30, 40, 50};
// 2. 배열 요소 접근
System.out.println("첫 번째 요소: " + numbers[0]); // 출력: 10
System.out.println("세 번째 요소: " + numbers[2]); // 출력: 30
// 3. 배열 크기
System.out.println("배열 크기: " + numbers.length); // 출력: 5
// 4. 배열 요소 변경
numbers[1] = 25;
System.out.println("두 번째 요소 변경 후: " + numbers[1]); // 출력: 25
// 5. 배열 순회
System.out.println("배열 요소 출력:");
for (int num : numbers) {
System.out.println(num);
}
}
}
출력 결과:
첫 번째 요소: 10
세 번째 요소: 30
배열 크기: 5
두 번째 요소 변경 후: 25
배열 요소 출력:
10
25
30
40
50
8. 요약
- 정의: 동일한 자료형 데이터를 저장하는 연속된 메모리 공간.
- 3요소: 배열 이름, 인덱스, 요소.
- 특징: 고정 크기, 동일 자료형, 연속된 메모리.
- 장점: 빠른 접근, 단순 관리, 효율적 메모리 사용.
- 단점: 크기 변경 불가, 메모리 낭비 가능성.
- 선언 방법:
int[] arr = new int[5];
(크기 지정)int[] arr = {10, 20, 30};
(초기값 지정)
'자바 > 자바 문법' 카테고리의 다른 글
정형화 코드(모델 클래스) (0) | 2025.01.31 |
---|---|
데이터 타입의 종류와 기본값 (0) | 2025.01.26 |
보조 제어문(break, continue) (0) | 2025.01.26 |
반복문이란? (0) | 2025.01.26 |
Swap(값 교환)이란? (0) | 2025.01.26 |