[DataStructure] Java Collections (List, Set, Map)

Jay·2021년 3월 12일
0

Computer Science

목록 보기
40/50
post-thumbnail

Map ?

  • Key, Value로 이뤄진 데이터의 집합
  • key의 중복은 허용되지 않고, Value의 중복은 가능하다.

Map의 특징

  • Object와 상당히 유사한 순회 가능한 객체
  • [K,V]의 형태로 이루어져 있으며, 선언하거나 추가 시 이러한 형태로 값을 넣어주어야 한다.
  • [K,V]의 형태에서 key 부분이 어떤 타입이어도 상관없다. Object는 string과 symbol만 가능하다.

Map의 종류

  • HashMap
    • 순서를 보장하지 않는 map
    • Key와 Value로 Null이 허용된다.
  • HashTable
    • 동기화를 지원하는 map
    • Key와 Value로 null이 허용되지 않는다.
  • TreeMap
    • 이진 검색 Tree 구조의 Map
    • 저장 시 Key기준으로 오름차순 저장된다.
    • 저장 시 정렬을 하기 때문에 저장 시간이 다소 오래 걸린다.
    • 정렬 된 순서로 키/값 쌍을 이루기 때문에 검색이 매우 빠르다.
  • LinkedHashMap
    • 들어간 순서대로 저장되는 Map
    • HashMap을 상속받아서 HashMap과 매우 유사하다.

Set의 특징

  • 배열과 유사한 순회 가능한 객체
  • value로만 이뤄져 있지만, 값이 키와 동일하게 설정되어 있다.
  • List와 달리 중복을 허용 하지 않는다.

Set의 종류

  • HashSet
    • 순서를 보장하지 않는 Set
    • 가장 빠른 임의 접근 속도
  • TreeSet
    • BinarySearch Tree 구조
    • 추가와 삭제에는 시간이 좀 더 걸리지만, 정렬 및 탐색에 성능이 좋다.
    • 오름차순으로 데이터 저장
    • 정렬 방법 지정 가능
  • LinkedHashSet
    • 데이터가 들어간 순서대로 저장하는 Set

List와 Set의 차이

  • List는 기본적으로 순서대로 들어가며 데이터의 중복을 허용한다.
  • Set은 순서가 보장되지 않고 중복 허용하지 않는다.
  • Map은 순서가 보장되지 않고, Key 중복은 허용하지 않지만 Value의 중복은 허용한다.
profile
developer

0개의 댓글