Array (배열):
- 설명:
- 배열은 동일한 자료형의 요소들이 순서대로 저장된 공간입니다.
- 각 요소는 인덱스를 통해 접근할 수 있으며, 인덱스는 0부터 시작합니다.
- 고정된 크기를 가지며, 크기가 변경되지 않습니다.
- 사용 방법:
- 데이터를 순차적으로 저장해야 할 때나 인덱스를 통한 빠른 접근이 필요한 경우에 사용됩니다.
- 메모리에 연속적으로 저장되므로 캐시 지역성이 높아 효율적인 메모리 액세스가 가능합니다.
- 정적 크기로 인해 크기를 동적으로 변경해야 하는 경우에는 적절하지 않을 수 있습니다.
LinkedList (연결 리스트):
- 설명:
- 연결 리스트는 노드라 불리는 객체들이 포인터로 연결된 구조를 갖습니다.
- 각 노드는 데이터와 다음 노드를 가리키는 포인터로 이루어져 있습니다.
- 크기가 동적으로 조절될 수 있습니다.
- 사용 방법:
- 삽입과 삭제 연산이 빈번하게 발생하는 경우에 효율적입니다. 배열은 크기가 고정되어 있어 중간에 요소를 추가하거나 삭제하는 데 비용이 높을 수 있습니다.
- 메모리의 불연속적인 공간을 사용하므로 캐시 효율성은 낮을 수 있지만, 중간에 요소를 추가하거나 삭제하는 데 유리합니다.
- 포인터를 이용하여 연결되어 있기 때문에 메모리 사용이 상대적으로 많을 수 있습니다.
사용 비교:
- Array 사용:
- 빠른 인덱스 기반 접근이 필요한 경우.
- 크기가 고정되어 있고, 자주 참조되는 데이터를 메모리에 연속적으로 저장해야 할 때.
- 크기가 작고 고정되어 있는 데이터 집합에 적합합니다.
- LinkedList 사용:
- 데이터의 삽입 또는 삭제가 빈번하게 발생하는 경우.
- 크기가 동적으로 변해야 하는 경우.
- 데이터의 순서가 자주 변경되는 경우.
'cs 공부' 카테고리의 다른 글
| 정렬 알고리즘에 대해서 아는대로 설명해주세요. (0) | 2023.11.17 |
|---|---|
| AWS S3, EC2를 사용하는 이유와 사용 경험에 대해서 답변해주세요. (0) | 2023.11.17 |
| 테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요. (0) | 2023.11.17 |
| DB 로직 최소화 (0) | 2023.11.17 |
| ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요? (0) | 2023.10.27 |