List
- 순서가 있는 데이터 집합으로, 데이터의 중복을 허용한다.
- 인덱스를 사용하여 요소에 접근할 수 있으며, 리스트 내 요소들의 위치는 유지된다.
- ArrayList, LinkedList 등이 대표적인 List 자료구조이다.
Set
- 순서가 없는 데이터 집합으로, 데이터의 중복을 허용하지 않는다.
- 중복된 데이터를 저장하지 않으며, 순서가 없기 때문에 인덱스를 사용하여 요소에 접근할 수 없다.
- HashSet, TreeSet 등이 대표적인 Set 자료구조이다.
- 중복되지 않는 데이터이 필요할 경우 사용한다.
- 데이터의 순서가 중요하거나 검색이 많이 필요한 경우에는 적합하지 않다.
- 데이터를 순서 없이 저장하기 때문에 검색 속도가 느릴 수 있다.
Map
- Key-Value 쌍으로 데이터를 저장하는 자료구조입니다. Key는 중복되지 않으며, Value는 중복될 수 있다.
- Key를 사용하여 Value에 접근할 수 있으며, 순서는 유지되지 않다.
- HashMap, TreeMap 등이 대표적인 Map 자료구조이다.
- 단어의 뜻을 저장하거나, 사용자 정보를 저장하고 검색하는 경우에 사용하면 적합하다.
- 데이터의 순서가 중요하거나 Key가 중복될 수 있는 경우 검색 속도가 느리고 중복된 값을 찾을 수 없기 때문에 적합하지 않다.
HashMap
- Key-Value 쌍으로 데이터를 저장하는 자료구조다.
- Hashing 알고리즘을 사용하여 데이터를 저장하므로, 데이터를 검색하는 속도가 빠르다.
- Key와 Value 모두 null 값을 가질 수 있다.
- 순서는 유지되지 않는다.
- 해시 알고리즘을 사용해 데이터를 저장하기 때문에 대용량 데이터를 처리해야 하거나 데이터를 빠르게 검색해야 하는 경우에 적합하다.
- Key-Value 형태로 데이터를 저장할 필요가 없는 경우 적합하지 않다. 데이터의 순서를 보장하지 않기 때문이고, Key와 Value 의 연관도가 낮은 경우 해시맵을 사용할 필요가 없다.
'CS' 카테고리의 다른 글
#9. 프로세스(Process)와 스레드(Thread) (0) | 2023.02.24 |
---|---|
#8. 파라미터(Parameter)와 아규먼트(Argument)의 차이 (0) | 2023.02.24 |
#6. MSA(Micro Service Architechure) (0) | 2023.02.23 |
#5. 인덱스 (0) | 2023.02.22 |
#4. DI(Dependency Injection) (0) | 2023.02.22 |