반응형
Java에서 배열(Array)은 같은 데이터 타입의 여러 값을 하나의 변수에 저장할 수 있는 자료구조입니다. 배열은 효율적인 데이터 관리와 반복 작업을 처리하는 데 유용하게 사용됩니다. 이번 글에서는 1차원 배열, 다차원 배열, 그리고 배열 복사 방법을 예제와 함께 살펴보겠습니다. 😊
1. 배열의 기본 개념: 1차원 배열
1차원 배열은 가장 기본적인 형태의 배열로, 한 줄로 데이터를 나열한 구조입니다.
코드 예제: 배열 선언 및 사용
// 배열 선언
String[] names = {"김", "이", "박", "정"}; // 값 목록으로 초기화
float[] heights = {175.5f, 170.2f, 180.3f, 165.2f}; // 키를 저장
int[] scores = new int[4]; // 크기만 지정한 배열
// 배열 값 설정
scores[0] = 80;
scores[1] = 90;
scores[2] = 85;
scores[3] = 88;
// 배열 출력
for (int i = 0; i < names.length; i++) {
System.out.printf("%s (%.2f) : score = %d%n",
names[i], heights[i], scores[i]);
}
실행 결과
김 (175.50) : score = 80
이 (170.20) : score = 90
박 (180.30) : score = 85
정 (165.20) : score = 88
핵심 포인트
- 배열은 0부터 시작하는 인덱스를 사용해 값을 접근합니다.
- 배열 크기는 .length 속성을 이용해 알 수 있습니다.
- 배열 크기를 초과하는 인덱스에 접근하면 IndexOutOfBoundsException 오류가 발생합니다.
2. 배열 복사하기
Java의 배열은 크기를 변경할 수 없으므로, 새로운 배열을 만들어 기존 데이터를 복사해야 합니다.
(1) for문을 이용한 배열 복사
int[] scores = {1, 2, 3}; // 원본 배열
int[] target = new int[10]; // 더 큰 배열 생성
// 복사
for (int i = 0; i < scores.length; i++) {
target[i] = scores[i];
}
System.out.println(Arrays.toString(target)); // 출력: [1, 2, 3, 0, 0, 0, 0, 0, 0, 0]
(2) System.arraycopy를 이용한 배열 복사
int[] source = {1, 2, 3}; // 원본 배열
int[] target = new int[10]; // 더 큰 배열 생성
System.arraycopy(source, 0, target, 3, source.length);
// source의 데이터를 target[3]부터 복사
System.out.println(Arrays.toString(target)); // 출력: [0, 0, 0, 1, 2, 3, 0, 0, 0, 0]
핵심 포인트
- System.arraycopy는 빠르고 효율적으로 배열 복사를 수행합니다.
- 복사 시작점과 길이를 명확히 설정해야 합니다.
3. 다차원 배열 (2차원 배열)
다차원 배열은 행과 열로 구성된 배열 구조로, 데이터를 테이블 형식으로 저장할 때 유용합니다.
코드 예제: 2차원 배열 선언 및 사용
int[][] table = {
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{2, 3, 4, 5, 6, 7, 8, 9, 10, 1},
{3, 4, 5, 6, 7, 8, 9, 10, 1, 2},
{4, 5, 6, 7, 8, 9, 10, 1, 2, 3},
{5, 6, 7, 8, 9, 10, 1, 2, 3, 4}
}; // 5행 10열 배열
// 배열 크기 확인
System.out.println("Rows: " + table.length); // 행 개수
System.out.println("Columns: " + table[0].length); // 열 개수
// 배열 데이터 출력
int sum = 0;
for (int row = 0; row < table.length; row++) { // 행 루프
for (int col = 0; col < table[row].length; col++) { // 열 루프
System.out.print(table[row][col] + "\t");
sum += table[row][col]; // 데이터 합산
}
System.out.println();
}
System.out.println("총합: " + sum); // 데이터 총합
실행 결과
Rows: 5
Columns: 10
1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10 1
3 4 5 6 7 8 9 10 1 2
4 5 6 7 8 9 10 1 2 3
5 6 7 8 9 10 1 2 3 4
총합: 275
핵심 포인트
- table.length: 행(Row) 개수를 반환합니다.
- table[row].length: 특정 행의 열(Column) 개수를 반환합니다.
- 행과 열에 대한 이중 반복문으로 데이터를 처리합니다.
정리
- 1차원 배열: 데이터를 선형으로 저장하며, 값 목록 또는 크기를 지정해 초기화할 수 있습니다.
- 배열 복사: for문이나 System.arraycopy를 사용하여 배열을 복사합니다.
- 다차원 배열: 행과 열의 구조로 데이터를 저장하며, 이중 반복문으로 데이터를 처리합니다.
배열은 효율적인 데이터 관리를 위한 강력한 도구입니다. 위 예제를 따라 해보며 배열의 개념을 익혀보세요! 😊
반응형
'개발 > JAVA' 카테고리의 다른 글
Java 기초편 - 배열 정렬과 복사 (2) | 2025.01.04 |
---|---|
Java 기초편 - 열거형(Enum) : 간단한 예제로 배우는 Enum 사용법 (2) | 2025.01.03 |
Java 논리 연산자와 비교 연산자 (3) | 2025.01.01 |
Java 삼항 연산자(조건 연산자) 쉽게 배우기 💻 (1) | 2024.12.31 |
JAVA 기초: 비트 연산자와 비트 시프트 연산자 (9) | 2024.12.30 |