본문 바로가기
Java

[Java] 기본 배열 Array의 선언 및 특징

by Davidev 2023. 8. 9.
반응형

 

 

Array

 

 

 

자바는 다양한 데이터 구조와 컬렉션 프레임워크를 제공하여 복잡한 자료구조를 다루는데 도움을 줍니다. 그럼에도 불구하고, 기본 배열(Array)은 여전히 매우 중요한 데이터 구조입니다. 이번 글에서는 자바의 기본 배열에 대한 특징과 활용 예제, 그리고 컬렉션 프레임워크와의 비교를 살펴보겠습니다.

 

 

 


 

 

기본 배열의 선언, 생성, 초기화

 

정수가 들어가는 3자리 배열 생성 / 초기화 전
초기화 전 배열 내부의 값

 

 

기본 배열은 '배열 생성'시 배열 내부의 값은 모두 '0'으로 초기화되어 있고, 선언과 동시에 값을 초기화 하거나 선언과 배열 생성, 초기화를 따로 하는 방법이 있습니다.

 

 

배열 선언 / 배열 생성 / 초기화 동시에 진행

int[] arr = {1, 2, 3};

 

배열 선언 / 배열 생성 / 초기화 따로 진행


int[] arr;

arr = new int[3];

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

 

 


 

 

기본 배열(Array)의 특징

 

 

 

고정 크기 : 배열은 생성할 때 크기를 지정하며, 생성된 이후에 크기를 변경할 수 없습니다. 이로써 크기가 고정되어 요소를 추가하거나 제거하는 작업이 번거로울 수 있습니다.


동일한 데이터 타입 : 배열은 동일한 데이터 타입의 요소들을 저장합니다. 예를 들어, int 타입의 배열은 int 타입의 값을 저장합니다.


인덱스 기반 접근 : 배열의 각 요소는 순차적인 인덱스를 가지며, 이 인덱스를 사용하여 각 요소에 접근할 수 있습니다.


메모리 배치 : 배열의 요소들은 메모리 상에 연속적으로 배치됩니다. 이로 인해 인덱스를 통한 빠른 접근이 가능합니다.


빠른 조회 : 특정 인덱스에 저장된 요소를 조회하는 데 걸리는 시간은 O(1)입니다. 따라서 배열은 빠른 조회를 위해 사용됩니다.


요소 추가/삭제 어려움 : 배열은 크기가 고정되어 있어 요소를 추가하거나 삭제하는 데에는 제약이 있습니다.

 

원시 타입 지원 : 기본 타입을 직접 저장하여 메모리 효율성이 높습니다.


연속적 메모리 할당 : 배열의 요소는 연속적으로 메모리에 할당되어 메모리 관리가 용이합니다.


다차원 배열 지원 : 배열 내부에 배열을 포함하여 다차원 배열을 구현할 수 있습니다.


단순한 구조 : 배열은 간단한 구조로 데이터를 저장하고 관리할 때 유용합니다.

 

 

 


 

 

컬렉션 프레임워크와의 차이점

 

 

1. 크기의 가변성
   - 기본 배열 배열의 크기는 생성할 때 지정되며, 이후에 크기를 변경할 수 없습니다크기를 변경하려면 새로운 배열을 생성하고 기존 요소를 복사해야 합니다.
   - 컬렉션 프레임워크 : 대부분의 컬렉션 클래스는 크기의 가변성을 제공합니다. 요소를 동적으로 추가하거나 제거할 수 있으며, 크기 조절을 자동으로 처리합니다.

2. 기능적인 다양성
   - 기본 배열 간단한 데이터 저장과 조회에 유용하지만, 요소의 추가, 삭제, 검색 등 복잡한 기능은 직접 구현해야 합니다.
   - 컬렉션 프레임워크 : 다양한 데이터 구조를 지원하며, 요소 추가, 삭제, 검색, 정렬 등의 기능을 표준화된 방법으로 제공합니다. ArrayList, HashMap, LinkedList 등 다양한 컬렉션 클래스가 있습니다.

3. 메모리 할당과 관리
   - 기본 배열 : 요소들이 연속적으로 메모리에 할당되어 조회 성능이 좋습니다. 하지만 크기 변경이 어려워 추가/삭제 시에 메모리 관리가 불편할 수 있습니다.
   - 컬렉션 프레임워크 : 요소들이 불연속적으로 메모리에 할당될 수 있으며, 크기 조절이 자유롭습니다. 메모리 관리와 요소 추가/삭제가 편리합니다.

4. 원시 타입 지원
   - 기본 배열 : 원시 타입(primitive type)을 직접 저장할 수 있어 메모리 효율적입니다.
   - 컬렉션 프레임워크 : 객체만 저장할 수 있으며, 원시 타입은 Wrapper 클래스로 감싸야 합니다.

5. 다차원 배열
   - 기본 배열 : 다차원 배열을 표현할 때 사용할 수 있습니다.
   - 컬렉션 프레임워크 : 다차원 컬렉션을 지원하지 않으며, 별도의 구현이 필요합니다.

 

 


기본 배열은 간단하고 빠른 데이터 저장 및 조회에 적합하지만, 크기의 불변성과 복잡한 기능 처리의 한계가 있습니다. 컬렉션 프레임워크는 크기의 가변성과 다양한 기능을 제공하여 데이터 구조를 유연하게 다룰 수 있습니다. 선택은 상황과 요구사항에 맞게 결정해야 합니다.

 

 


 

 

기본 배열을 사용하는 이유

 

 

 

간결성과 속도 : 간단하며 오버헤드가 적어 빠른 속도로 데이터를 저장하고 조회할 수 있습니다.

 

다차원 배열 : 다차원 데이터를 표현할 때 사용하기 편리합니다.

 

원시 타입 지원 : 원시 타입을 직접 저장할 수 있어 메모리 효율성이 높습니다. (String, int, byte 등...)

 

메모리 효율성 : 연속적인 메모리 배치로 메모리 효율성이 높습니다.

 

 


 

정리

 

'수정 요소(값이 추가되거나 삭제될)가 없을 원시 타입의 데이터' 인 경우

기본 배열을 사용하는 것이 빠른 속도와 효과적인 메모리 사용 측면에서 좋아보인다.

 

 

반응형

댓글