Java Array (배열)
Java 배열은 같은 데이터 타입의 여러 값을 하나의 변수로 저장할 수 있는 참조 자료형이다.
배열은 고정된 크기를 가지며, 생성 후에는 크기를 변경할 수 없다.
Java의 배열은 인덱스를 통해 요소에 접근하며, 인덱스는 0부터 시작한다.
배열의 선언과 생성
배열을 사용하려면 먼저 배열의 타입과 크기를 정의하여 선언하고, 실제 공간을 할당해야 한다.
배열 선언
int[] numbers; // 정수를 저장하는 배열 선언
String[] names; // 문자열을 저장하는 배열 선언
배열 생성
numbers = new int[5]; // 정수형 배열 공간 생성 (크기 5)
names = new String[3]; // 문자열 배열 공간 생성 (크기 3)
배열의 선언과 생성을 동시에 할 수도 있다.
int[] numbers = new int[5];
String[] names = new String[3];
배열 초기화
int[] numbers = {1, 2, 3, 4, 5};
String[] names = {"Alice", "Bob", "Charlie"};
배열의 크기와 인덱스
배열의 크기는 array.length를 통해알 수 있다.
배열의 인덱스는 0부터 시작하며, 배열 크기 - 1이 마지막 인덱스이다.
예를 들어, int[] arr = new int[3]; 배열은 arr[0]. arr[1], arr[2]로 접근할 수 있다.
잘못된 인덱스를 사용하면 ArrayIndexOutOfBoundsException 예외가 발생한다.
배열의 요소 접근과 수정
배열의 특정 요소에 접근하거나 값을 수정할 수 있다.
int[] numbers = {1, 2, 3};
System.out.println(numbers[0]); // 출력: 1
numbers[1] = 10; // 인덱스 1의 값 수정
System.out.println(numbers[1]); // 출력: 10
다차원 배열
Java에서는 다차원 배열도 사용할 수 있다.
다차원 배열은 여러 차원으로 구성된 데이터를 저장하기 위해 사용된다.
각각의 차원은 배열 내에 또 다른 배열을 가지며,
이를 통해 행렬이나 큐브와 같은 구조를 표현하거나 다차원 데이터를 저장할 수 있다.
2차원 배열 선언과 생성
int[][] matrix = new int[2][3]; // 2행 3열의 배열 생성
2차원 배열 초기화
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
2차원 배열 요소 접근
System.out.println(matrix[0][1]); // 출력: 2
matrix[1][2] = 9; // 값 수정
3차원 배열
int[][][] cube = new int[2][3][4]; // 2층 3행 4열의 3차원 배열 생성
cube[0][1][2] = 42;
cube[1][2][1] = 18;
int value = cube[1][2][1]; // 2층 3행 2열의 원소에 접근
n차원 배열 이해하기
코드로만 보면 이해하기 어려울 수 있다.
3차원 배열을 기준으로 보면 행,열,깊이를 x,y,z 축을 생각하며 접근하면 쉽다.
예를 들어 cube[1][2][1] = 18; 이면
x = 1, y = 2, z = 1 위치에 값이 18이다.
배열과 관련된 주요 메서드와 클래스
배열 자체는 메서드를 제공하지 않지만, Arrays 클래스는 배열 작업을 돕는 여러 메서드를 제공한다.
- Arrays.toString(array): 배열을 문자열로 출력.
- Arrays.sort(array): 배열을 정렬.
- Arrays.copyOf(array, newLength): 배열을 특정 크기로 복사.
- Arrays.equals(array1, array2): 두 배열의 요소가 동일한지 비교.
import java.util.Arrays;
int[] numbers = {3, 1, 2};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // 출력: [1, 2, 3]
'Java' 카테고리의 다른 글
Java 조건문 (if, if else, switch case) (0) | 2024.11.14 |
---|---|
Java 문자열 (String) (1) | 2024.11.14 |
Java 형 변환 (Type Casting) (0) | 2024.11.12 |
Java 변수와 상수 (0) | 2024.11.12 |
Java 자료형 정리 (Java Data Type) (1) | 2024.11.11 |