배열 & 동적배열 & 연관배열

지식저장공간·2023년 2월 11일
0

자료구조

목록 보기
11/17

Array & Dynamic Array &
Associative Array

Array

Array 정의

연속적인 메모리 공간에 순차적으로 같은 타입의 데이터를 저장하는 자료구조.
인덱스로 접근가능하다.

Array의 구조

int배열의 경우 연속적인 메모리 공간에 4byte씩 차지한다.
배열은 포인터이다. 즉, 배열은 메모리의 참조주소를 가리키며 index를 offset처럼 활용하여 다음 index의 데이터에 접근한다.
ex) 참조주소 + 자료형 크기 * 인덱스

★ 객체 배열의 경우 주소를 참조하는 레퍼런스들은 메모리에 순차적으로 존재하지만, 객체들은 메모리 공간에 비순차적으로 저장되어있다. 배열 아이템에 접근 시 레퍼런스가 참조하고 있는 메모리 주소값을 확인하여 메모리에서 아이템을 읽어온다.

메모리 관점 Array

연속된 메모리 공간에 데이터들을 저장하기 때문에 cpu cache를 통해 같은 배열에 있는 다른데이터에 접근하는 시간을 단축할 수 있다.

Dynamic Array

Dynamic Array 정의

크기가 변할 수 있는 Array로써 데이터를 더하거나 빼는것이 가능한 자료구조이다.
@Java ArrayList

Dynamic Array 동작방법

array의 크기보다 큰 데이터를 저장할 경우 기존 array보다 큰 배열을 생성하여
기존의 배열을 복사하고 추가적으로 데이터를 저장한다.

Associative Array

Associative Array 정의

key-value pair들을 저장하는 ADT. 같은 key를 가지는 pair는 최대 한개만 존재한다.
@Java Map<k,V>

출처 : 쉬운코드 유튜브

profile
발전하는 개발자가 꿈입니다. 지식을 쌓고 지식을 활용해 목표 달성을 추구합니다.

0개의 댓글