배열

제민·2024년 7월 6일

Java 개념 공부

목록 보기
8/21
post-thumbnail

배열이란?

배열은 같은 타입의 데이터를 여러 개 저장할 수 있는 자료 구조입니다. Java에서 배열은 중요한 데이터 구조 중 하나로, 데이터가 연속된 메모리 공간에 저장됩니다. 배열은 일반 변수가 하나의 값만 저장할 수 있는 것과 달리, 여러 개의 값을 저장할 수 있습니다.

1차원 배열

1차원 배열 선언 및 초기화

1차원 배열은 선형 구조로, 같은 타입의 데이터를 연속적으로 저장합니다. 배열의 선언과 초기화 방법은 다음과 같습니다:

// 배열 선언
int[] arr = new int[5]; // 길이가 5인 int형 배열 선언 및 할당

// 배열 초기화
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;

// 배열 선언과 동시에 초기화
int[] arr = {1, 2, 3, 4, 5};

배열의 각 요소는 인덱스를 통해 접근할 수 있으며, 인덱스는 0부터 시작합니다.

배열의 출력

배열의 요소를 출력하려면 반복문을 사용할 수 있습니다:

for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

2차원 배열

2차원 배열은 배열 안에 배열이 있는 구조로, 행과 열의 형태를 가집니다. 2차원 배열은 다음과 같이 선언하고 초기화할 수 있습니다:

2차원 배열 선언 및 초기화

// 2차원 배열 선언
int[][] arr = new int[3][4]; // 3행 4열의 2차원 배열 선언 및 할당

// 2차원 배열 초기화
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[0][3] = 4;
arr[1][0] = 5;
arr[1][1] = 6;
arr[1][2] = 7;
arr[1][3] = 8;
arr[2][0] = 9;
arr[2][1] = 10;
arr[2][2] = 11;
arr[2][3] = 12;

2차원 배열의 출력

2차원 배열의 요소를 출력하려면 중첩된 반복문을 사용할 수 있습니다:

for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j] + " ");
    }
    System.out.println();
}

가변 배열

가변 배열은 각 행의 열 크기가 다른 배열을 말합니다. 가변 배열을 선언하고 초기화하는 방법은 다음과 같습니다:

int[][] arr = new int[3][];
arr[0] = new int[2]; // 첫 번째 행에 2개의 열
arr[1] = new int[3]; // 두 번째 행에 3개의 열
arr[2] = new int[4]; // 세 번째 행에 4개의 열

배열 복사

배열을 복사하는 방법에는 여러 가지가 있습니다. 대표적으로는 System.arraycopy 메서드를 사용할 수 있습니다.

얕은 복사와 깊은 복사

  • 얕은 복사: 원본 배열과 복사된 배열이 같은 메모리 주소를 참조합니다.
  • 깊은 복사: 원본 배열과 복사된 배열이 다른 메모리 주소를 참조하며, 배열의 모든 값을 복사합니다.
int[] original = {1, 2, 3, 4, 5};
int[] copy = new int[original.length];

// 깊은 복사
for (int i = 0; i < original.length; i++) {
    copy[i] = original[i];
}

// System.arraycopy를 사용한 깊은 복사
System.arraycopy(original, 0, copy, 0, original.length);
profile
초보부터 시작하는 개발자 생활

0개의 댓글