배열과 리스트의 차이점은?

sanghee·2021년 11월 11일
0
post-thumbnail

1. 배열

장점

  • 구현이 쉽다.
  • 인덱스가 있어 조회에서 빠른 성능을 보여준다.
  • 연속된 메모리 공간에 할당되어 순차 접근에도 빠르다.
  • 참조를 위한 추가 메모리 할당이 필요 없다.

단점

  • 삽입/삭제 시 뒤에 있는 요소들을 이동해야 해서 비효율적이다.
  • 선언 시 지정한 크기를 변경할 수 없다. → 배열이 넘칠 경우 기존 배열 길이만큼 늘린다.
  • 메모리를 재사용할 수 없다. 초기 사이즈만큼 할당되고, 데이터가 없더라도 메모리를 차지하고 있다.

2. 리스트

장점

  • 삽입/삭제 시 노드의 참조 관계만 수정하면 되기에 효율적이다.
  • 크기가 고정적이지 않다.
  • 메모리를 재사용할 수 있다. 삭제시 해당 노드의 참조가 사라져 GC에 의해 가용 메모리로 전환된다?

단점

  • 구현이 상대적으로 복잡하다.
  • 검색이 비효율적이다. 처음부터 순차적으로 검색해야 한다.
  • 참조를 위한 메모리가 필요하다.

3. 결론

  • 배열: 저장할 데이터의 개수가 정해저 있고, 삽입/삭제 작업이 적고, 특정 위치의 데이터를 조회하는 작업이 많을 때 유리하다.
  • 리스트: 지정할 데이터의 수가 미정이고, 삽입/삭제 작업이 많고, 특정 위치의 데이터를 조회하는 경우가 별로 없을 때 유리하다.
profile
👩‍💻

0개의 댓글