2019년 11월 16일 토요일

배열(Array)과 리스트(List)의 차이


배열( Array )의 특징
- 같은 자료형을 가진 변수를 하나로 나타낸 것.
- 연속된 메모리 공간으로 이루어져있는 것.
- 정적 표현.
- 인덱스를 이용하여 표현.
- 지역성을 가지고 있다.
배열의 장점
- 인덱스를 통한 검색이 용이함.
- 연속적이므로 메모리 관리가 편하다.

배열의 단점
- 한 데이터를 삭제하더라도 배열은 연속해야 하므로 공간이 남는다. 즉, 메모리 낭비
- 정적이므로 배열의 크기를 컴파일 이전에 정해주어야 한다.
- 컴파일 이후 배열의 크기를 변동 할 수 없다.

리스트(List)의 특징
- 순서가 있는 데이터의 집합.
- 불연속적으로 메모리 공간을 차지.
- 동적 표현
- 인덱스가 없음.
- 포인터를 통한 접근
리스트의 장점
- 포인터를 통하여 다음 데이터의 위치를 가르켜고 있어 삽입 삭제의 용이.
- 동적이므로 크기가 정해져 있지 않다.
- 메모리의 재사용 편리
- 불연속적이므로 메모리 관리의 편리

리스트의 단점
- 검색 성능이 좋지 않다.
- 포인터를 통해 다음 데이터를 가르키므로 추가적인 메모리 공간 발생.

l  정리
배열 : 데이터의 크기가 정해져 있고, 추가적인 삽입 삭제가 일어 나지 않으며 검색을 필요로 할 때 유리. 
리스트 : 데이터의 크기가 정해져 있지 않고, 삽입 삭제가 많이 일어나며, 검색이 적은 경우 유리.