[자료구조] List
List의 Key Point!!
- 순서가 있다
- 중복을 허용한다
Array와 List의 차이점
Array
- 데이터의 저장 위치, 즉 Index가 중요하다
List
- 엘리먼트(데이터)의 순서가 더 중요하다
예) 데이터를 추가하는 경우
이러한 데이터가 있을 때,
- 배열의 경우 3번 인덱스에 데이터를 추가한다면 원본의 데이터를 덮어쓰게 된다.
- 리스트의 경우 기존 데이터를 한 칸 뒤로 밀고(인덱스 3번의 값이 4번으로 이동), 빈공간에 데이터를 추가한다.(새로운 인덱스 3번이 됨)
예) 데이터를 삭제하는 경우
- 배열의 경우 데이터를 삭제할 시 비어있는 상태를 유지한다.
- 인덱스가 변하지 않는다 ⇒ 인덱스는 값에 대한 유일무이한 식별자이다!
- 리스트는 3번 데이터가 사라지면 4번 데이터가 앞으로 전진한다
List의 장점
데이터가 연속적이다. 즉, 비어있는 데이터가 없다
⇒ for문 등을 통해 순회 처리를 하는 경우 데이터가 비어 있는지 체크할 필요가 없다!
- Array는 1.순회하는 과정에서 빈 공간을 체크해야 한다 && 2.데이터를 삭제하는 경우 빈 공간이 남아 있어서 메모리 차지가 크다
List의 기능
- ✨처음, 끝, 중간에 엘리먼트를 추가 / 삭제하는 기능
- 데이터가 List에 있는지 없는지 체크하는 기능
- 리스트의 모든 데이터에 접근할 수 있는 기능
언어별 비교
- C : 리스트를 지원하지 않는다. → 직접 만들거나 라이브러리를 사용해야 함
- JavaScript : 배열이 리스트
- 파이썬 : 리스트가 배열
- JAVA : 배열과 리스트를 독립적으로 지원한다.
- List를 두 개 지원 (LinkedList / ArrayList)
+) 컨셉이 중요하다
각각의 자료구조의 중심 컨셉이 무엇인지 파악하는 것이 중요하다!🌟
댓글남기기