-
(3) Array vs ArrayList vs LinkedList자료구조/기본 자료구조 2021. 4. 28. 14:59
■ Array
> 고정 size의 arrray를 선언하고 이를 사용
- 연속된 메모리 공간
- 데이터 최대 사이즈를 모르거나 데이터가 계속 늘어나는 경우 부적합
> 데이터 삽입 삭제가 느림
- 중간 index에 값을 추가하는 경우, 다음 index부터 뒤로 밀어내며 덮어쓰이는 등의 이유
> item 사이의 빈 공간(null) 등이 있을 수 있음
> index로 빠르게 값을 찾는 것이 가능
■ Array List[JAVA]( List )
> 빈공간이 없게 연관된 데이터들이 붙어있는 array 구조
- 빈틈없이 적재하므로, 낭비되는 메모리 적음 but pointer로 인해 추가 공간 사용
- 메모리 상에서 불연속적으로 위치
> 동적으로 동작하여 고정된 size가 아님
> 데이터를 찾는데 빠르지만 array 한계처럼 데이터의 삽입 / 삭제가 느림( 중간index 작업시 전후 데이터 복사/이동 )
- Index는 순서의 의미, array의 유일무이 identifier로서의 index와는 차이가 조금 있다
- 포인터를 통한 접근
■ Linked List
> node에 포인터에 다음 데이터 위치를 저장
> 데이터 삽입 / 삭제가 빠름
> 데이터를 찾을 때 순회하면서 순차적으로 검색하기에 검색이 느림
참조 :
www.holaxprogramming.com/2014/02/12/java-list-interface/
gyoogle.dev/blog/computer-science/data-structure/Array%20vs%20ArrayList%20vs%20LinkedList.html
반응형'자료구조 > 기본 자료구조' 카테고리의 다른 글
(5) Queue (0) 2021.04.28 (4) Stack (0) 2021.04.28 (2) Linked list (0) 2021.04.28 (1) Array - 배열 (0) 2021.04.28