본문 바로가기
CS

#7. List, Set. Map, HashMap

by nacjji 2023. 2. 23.
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