일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 자료구조
- 자바
- 코딩테스트
- 힙정렬
- C++
- 알고리즘
- 선택정렬
- 계수정렬
- 정수론
- java
- 선택알고리즘
- 프로그래밍언어
- 프로그래밍
- 퀵정렬
- 동적계획법
- SNS
- 기수정렬
- 삽입정렬
- 재귀
- Median of Medians
- 병합정렬
- 수학
- 백준
- 정렬
- 동적프로그래밍
- DP
- 안드로이드
- 백트래킹
- 버블정렬
- 다이나믹프로그래밍
- Today
- Total
MODE::CREATIVE
[JAVA] 자바의 배열(Array) 본문
자바의 배열에 관한 정리
1. 배열이란?
배열(array)은 같은 데이터 타입의 값들을 순차적으로 저장하는 자료구조입니다. 배열은 고정된 크기를 가지며, 각 데이터는 인덱스(index)를 사용해 접근합니다. 자바에서 배열은 객체로 취급되며, 힙(heap) 메모리에 저장됩니다.
1-1. 배열의 특징
- 같은 타입: 배열은 동일한 데이터 타입의 요소들로 구성됩니다.
- 인덱스: 배열의 각 요소는 0부터 시작하는 고유한 인덱스를 가집니다.
- 고정된 크기: 배열의 크기는 선언 시에 고정되며, 실행 중 변경할 수 없습니다.
- 효율적인 데이터 처리: 반복문과 함께 사용하면 데이터를 효율적으로 처리할 수 있습니다.
2. 배열 선언과 생성
배열은 선언과 생성을 통해 사용할 수 있습니다. 배열 생성 후에는 초기화하여 값을 설정해야 합니다.
2-1. 배열 선언
배열은 데이터 타입 뒤에 대괄호([]
)를 추가하여 선언합니다.
int[] intArray; // 정수형 배열 선언
char[] charArray; // 문자형 배열 선언
2-2. 배열 생성
배열을 생성하려면 new
키워드와 함께 크기를 지정해야 합니다.
int[] intArray = new int[5]; // 크기 5인 정수형 배열 생성
char[] charArray = new char[10]; // 크기 10인 문자형 배열 생성
2-3. 선언과 생성 동시에 초기화
배열을 선언하면서 초기화 값을 지정할 수 있습니다.
int[] numbers = {1, 2, 3, 4, 5}; // 초기화된 값으로 배열 생성
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
3. 배열의 원소 접근
배열의 각 원소는 인덱스를 사용해 접근할 수 있습니다. 인덱스는 0부터 시작하며, 마지막 인덱스는 (배열 크기 - 1)
입니다.
int[] numbers = {10, 20, 30, 40, 50};
System.out.println(numbers[0]); // 출력: 10
numbers[1] = 25; // 두 번째 원소 변경
System.out.println(numbers[1]); // 출력: 25
3-1. 배열의 범위 주의
인덱스가 배열의 범위를 벗어나면 ArrayIndexOutOfBoundsException이 발생합니다.
int[] numbers = new int[3];
numbers[3] = 10; // 오류 발생: 배열의 크기(3)를 초과
4. 배열과 반복문
배열은 반복문과 함께 사용하면 효율적으로 처리할 수 있습니다.
4-1. for 문
int[] scores = {70, 85, 90, 100, 65};
for (int i = 0; i < scores.length; i++) {
System.out.println("점수: " + scores[i]);
}
4-2. for-each 문
Java의 for-each 문은 배열의 각 요소에 직접 접근할 때 유용합니다.
int[] scores = {70, 85, 90, 100, 65};
for (int score : scores) {
System.out.println("점수: " + score);
}
5. 배열의 크기와 length 필드
배열의 크기는 length
필드를 통해 확인할 수 있습니다.
int[] numbers = {1, 2, 3, 4, 5};
System.out.println("배열의 크기: " + numbers.length); // 출력: 5
6. 다차원 배열
6-1. 2차원 배열 선언과 생성
2차원 배열은 배열의 배열로 이루어진 구조입니다.
int[][] matrix = new int[3][4]; // 3행 4열의 2차원 배열 생성
6-2. 2차원 배열 초기화
2차원 배열은 중첩 중괄호를 사용해 초기화할 수 있습니다.
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
6-3. 2차원 배열 접근
2차원 배열의 각 요소는 행과 열의 인덱스를 사용해 접근합니다.
System.out.println(matrix[0][1]); // 출력: 2 (0행 1열의 값)
matrix[1][2] = 10; // 값 변경
System.out.println(matrix[1][2]); // 출력: 10
7. 비정방형 배열
비정방형 배열은 행마다 열의 개수가 다른 배열을 말합니다.
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[2]; // 첫 번째 행: 2개의 열
jaggedArray[1] = new int[3]; // 두 번째 행: 3개의 열
jaggedArray[2] = new int[4]; // 세 번째 행: 4개의 열
8. 배열 리턴과 메소드
배열은 메소드의 반환값으로 사용할 수 있습니다. 메소드에서 생성한 배열을 반환하면 메모리 효율적으로 값을 전달할 수 있습니다.
public static int[] createArray() {
int[] array = {1, 2, 3, 4, 5};
return array;
}
public static void main(String[] args) {
int[] result = createArray();
for (int value : result) {
System.out.println(value);
}
}
9. 배열 활용 예제
9-1. 배열에서 가장 큰 값 찾기
int[] numbers = {12, 34, 56, 78, 90};
int max = numbers[0];
for (int num : numbers) {
if (num > max) {
max = num;
}
}
System.out.println("최대값: " + max);
9-2. 배열의 평균 구하기
int[] numbers = {10, 20, 30, 40, 50};
int sum = 0;
for (int num : numbers) {
sum += num;
}
System.out.println("평균: " + (double) sum / numbers.length);
자바에서 배열은 데이터 관리와 처리에서 매우 중요한 역할을 합니다. 다양한 배열의 선언, 초기화, 접근 방법을 이해하고 반복문과 결합하여 효율적으로 활용하면 복잡한 데이터 구조도 쉽게 처리할 수 있습니다.
'JAVA' 카테고리의 다른 글
[JAVA] 자바의 예외처리 (0) | 2025.01.11 |
---|---|
[JAVA] 자바의 main() 메서드 (0) | 2025.01.11 |
[JAVA] java의 입력(Buffered reader) (0) | 2024.11.17 |
[JAVA] java의 입력(Scanner) (0) | 2024.11.10 |
[JAVA] java의 연산자, 조건문, 반복문 (1) | 2024.11.10 |