Set(셋): 중복을 허용하지 않는 집합 자료구조
{1, 2, 3} (여기에 2를 또 넣어도 그대로)Map(맵): Key(키)와 Value(값)를 한 쌍으로 저장하는 자료구조
예:
{
"apple": 1000,
"banana": 1500
}
해시셋과 해시맵은 각각 셋과 맵의 구현 방식 중 하나로, 내부적으로 해시 테이블을 사용한다.
따라서 검색, 추가, 삭제가 빠르다.
HashSet은 내부적으로 HashMap을 사용해서 구현된다.
(이때 해시맵의 value 자리에는 의미 없는 더미 객체 사용)
"Set의 값 = HashMap의 key"
변수 타입은 인터페이스로, 객체 생성은 구현체로 하는 것이 좋다.
// 권장 방식
Map<String, Integer> map = new HashMap<>();
Set<String> set = new HashSet<>();
// ❌ 비권장 방식
HashMap<String, Integer> map = new HashMap<>();
HashSet<String> set = new HashSet<>();
public void process(HashMap<String, Integer> map)
public void process(Map<String, Integer> map)