[자료구조] Array(배열)

Frog Lemon·2024년 9월 4일
0

알고리즘

목록 보기
13/20
post-thumbnail

Array(배열)

배열(Array) 이란?

Java에서 배열은 객체이자 기본적으로 지원되는 자료형 중 하나입니다.

Java에서 배열(array)은 같은 데이터 타입을 가진 여러 요소(element)를 하나의 변수로 관리할 수 있게 해주는 자료 구조입니다. 배열은 고정된 크기를 가지며, 선언된 이후에는 크기를 변경할 수 없습니다

배열의 첫 번째 요소의 메모리 주소를 첫 번째 주소, 기본 주소라고 합니다.

배열은 인덱스(index)를 사용해 각 요소에 접근할 수 있습니다. 이러한 특징 때문에 배열은 데이터의 순서를 유지하고, 특정 위치의 요소에 빠르게 접근할 수 있는 장점이 있습니다.

배열(Array)의 장점 및 단점

장점

  • 구현이 쉽습니다.
  • 빠른 검색 및 접근 : 인덱스를 사용하여 배열의 요소에 빠르게 접근할 수 있습니다.
  • 효율적인 메모리 사용: 연속된 메모리 공간을 사용하므로 메모리 사용이 효율적입니다.

단점

  • 삽입과 삭제에 비효율 : 자료의 삽입(Insert)와 삭제(Delete)시 다음 항목의 모든 요소를 이동시켜야 합니다. 이를 연산 작업이 수행되어 비효율적이고 자료의 수가 많아지면 비례하여 성능이 떨어지게 됩니다.
  • 고정 크기: 배열은 한 번 생성되면 크기를 변경할 수 없습니다.
  • 동일 타입: 배열의 모든 요소는 동일한 데이터 타입이어야 합니다.
  • 배열 복사: 배열을 다른 배열에 할당하면 참조가 복사됩니다. 즉, 원래 배열을 변경하면 복사된 배열도 변경됩니다. 깊은 복사를 위해서는 별도의 작업이 필요합니다.

배열 선언 및 생성

배열을 사용하기 위해서는 먼저 배열을 선언하고 생성해야 합니다.

1. 배열 선언

int[] numbers;

여기서 int[]int 타입의 배열을 의미하며, numbers는 배열의 이름(변수)입니다. 이때 배열을 생성하지는 않았고, 단지 배열을 참조할 수 있는 변수를 선언한 것입니다.

2. 배열 생성

배열을 선언한 후, 배열을 생성해야 합니다. 배열을 생성할 때는 배열의 크기를 지정해야 합니다.

numbers = new int[5];

이 코드는 int 타입의 크기가 5인 배열을 생성하고, numbers라는 변수에 그 배열을 할당합니다.

배열의 선언과 생성을 동시에 할 수도 있습니다:


int[] numbers = new int[5];

3. 배열 초기화

배열을 생성하면 배열의 각 요소는 기본값으로 초기화됩니다. 예를 들어, int 배열의 경우 모든 요소가 0으로 초기화됩니다. 다른 타입의 배열도 각각의 기본값이 있습니다.

배열을 생성과 동시에 원하는 값으로 초기화할 수도 있습니다.

int[] numbers = {10, 20, 30, 40, 50}

<int형 배열 numbers 변수>

인덱스(Index)배열의 요소(Value)
010
120
230
340
450

3. 배열 요소 접근 및 수정

배열의 요소는 인덱스를 사용하여 접근할 수 있습니다. 인덱스는 0부터 시작하며, 배열의 크기보다 1 작은 값까지 접근할 수 있습니다.

요소 접근

int firstNumber = numbers[0];  // 첫 번째 요소에 접근 (값: 1)

요소 수정

numbers[0] = 10;  // 첫 번째 요소의 값을 10으로 수정

배열의 크기

배열의 크기는 생성 시 고정되며, 나중에 변경할 수 없습니다. 배열의 크기는 .length 속성을 통해 확인할 수 있습니다:

int size = numbers.length;  // 배열의 크기 (값: 5)

다차원 배열

Java에서는 2차원 이상의 다차원 배열도 사용할 수 있습니다. 2차원 배열은 배열의 배열로 이해할 수 있습니다.

2차원 배열 선언 및 생성

int[][] matrix = new int[3][4];  // 3x4 크기의 2차원 배열 생성

2차원 배열 요소 접근

int value = matrix[1][2];  // 두 번째 행, 세 번째 열의 요소에 접근

2차원 배열 초기화

java코드 복사
int[][] matrix = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

Java에서 배열은 기본적이면서도 강력한 자료 구조입니다. 배열의 크기가 고정된다는 점은 단점일 수 있지만, 특정 상황에서는 매우 효율적으로 사용할 수 있습니다. 배열을 잘 활용하면 데이터 관리와 알고리즘 구현이 훨씬 쉬워집니다

profile
노력과 끈기를 추구합니다. 레몬이 좋아!

0개의 댓글