List는
데이터가 순서대로 저장되며, 중복 데이터 저장을 허용한다.
이는 배열과 매우 비슷하다.
배열은 데이터가 저장된 인덱스, 주소가 중요하며 인덱스, 주소를 가지고 해당 위치로 바로 찾아가 데이터를 볼 수 있다.
그러나 리스트는 인덱스 보다 순서를 더 중요시한다.
차이점을 예시로 들어보면 다음과 같다.
------------------------------------------------------------------------------------------------------------------
데이터가 [10, 20, 30, 40] 일 경우 배열에서 50을 추가한다면,
a[3] = 50 으로 해당 위치에서 값을 덮어쓰거나, a[4] = 50을 추가해야 한다..
그러나 리스트는 40의 값을 밀어내고 50을 넣는다. [10, 20, 30, 50, 40]
또는 제일 뒷자리에 추가한다. [10, 20, 30, 40, 50]
------------------------------------------------------------------------------------------------------------------
만일 데이터 40을 삭제한다면 [10, 20, 30, 40, 50]
배열에서는 [10, 20, 30, , 50] 이 될 것이고
리스트에선 [10, 20, 30, 50] 이 된다. 인덱스도 당겨진다.
------------------------------------------------------------------------------------------------------------------
이런식이다보니 데이터를 동적으로 다뤄야 할 경우 배열보단 리스트가 유리할 수 있다.
리스트에선 처음, 중간, 끝 엘리먼트를 추가/삭제 하는 기능을 제공한다.
C - List 지원안함
JavaScript(배열과 리스트를 거의 같게 사용함) - splice
Python - 배열을 제공하지 않고, 리스트를 제공함.
Java - ArrayList 로 사용함.
- LinkedList도 간혹 사용함.
ArrayList를 사용하는 걸 보면 배열과 리스트는 상반되는 개념 보단 비슷한 개념으로 봐야한다.
그렇지만 같은건 아니다. 그러므로 해깔린다.
이에 대해선 별도로 정리한다.
LinkedList도 마찬가지다
'IT기술 > 자료구조' 카테고리의 다른 글
자료구조 - LinkedList (0) | 2022.09.12 |
---|---|
자료구조 - Array List (0) | 2022.09.12 |
자료구조 - 배열(Array) (0) | 2022.09.12 |
자료구조의 특징 (0) | 2022.09.12 |
자료구조란? (0) | 2022.09.12 |