본문 바로가기
CS/Data Structure

HashMap,TreeSet

by ilyadelavie 2022. 5. 25.

배경 지식


· Set,Map

  Set Map
자료 형태 Value 만 존재 Key, Value 쌍으로 존재
중복 여부 X Key값 중복 X
contains contains(value) containsKey(key)
get X get(key)


· Hash,Tree

  Hash Tree
순서 X 정렬 순서 유지
시간 복잡도 O(1) O(log n)

 

  • HashSet : 속도 빠름 / Value만 존재 / 존재 여부만 판별 가능
  • HashMap : 속도 빠름 / Key·Value 존재 / get 가능
  • TreeSet : 정렬 순서 유지 / Value만 존재 / 존재 여부만 판별 가능
  • TreeMap : 정렬 순서 유지 / Key·Value 존재 / get 가능

HashMap


  • HashMap에서 자료를 관리하는 방식은 해시 방식으로 key 값이 정해지면 그에 대응하는 해시 테이블의 저장 위치가 정해지며, 이런 위치를 계산하는 함수가 해시 함수이다.
    • 해시 테이블 : 해시 방식의 자료를 저장하는 공간
    • 해시 함수 : e.g) index = hash(key)
  • Map 인터페이스에서의 전체 자료 순회
    • Map 인터페이스는 모든 자료를 한 번에 순회할 수 있는 방법이 없다.
    • 그래서 key 값을 먼저 가져와서 해당 key 값에 해당하는 value를 찾아야 한다.

 

주요 메서드

  1. Map.getOrDefault
    • V getOrDefault(Object Key, Object defaultValue)
      • defaultValue : 지정된 키로 매핑된 값이 없거나 null이면 반환하는 기본 값
    • 찾는 key가 존재한다면 찾는 key의 value를 반환하고 없거나 null이면 default 값을 반환한다.

 

구현 코드


  
import java.util.HashMap;
public class practice {
public static void main(String arg[]) {
String [] abc = { "A", "B", "C" ,"C"};
HashMap<String, Integer> hm = new HashMap<>();
for(String key : abc) {
hm.put(key, hm.getOrDefault(key, 0) + 1);
}
System.out.println("출력 결과 : " + hm);
// 출력 결과 : {A=1, B=1, C=2}
}
}

 

 

활용

  • 문제 풀이 연결

 

TreeSet


 

'CS > Data Structure' 카테고리의 다른 글

Graph(그래프)  (0) 2022.06.14
LRU Cache  (0) 2022.06.08
Queue(작성중)  (0) 2022.06.01