Java 공부/Java 일반
중복값을 없앨 때에 유용한 HashSet, HashMap
모항
2022. 1. 28. 18:30
HashSet은 Set 인터페이스의 구현 클래스이다.
HashMap은 Map 인터페이스의 구현 클래스이다.
즉, HashSet은 일반적인 요소를 저장하고, HashMap은 키와 값을 한 쌍으로 묶어 저장한다.
HashSet은 중복되는 요소를 허용하지 않는다.
HashMap은 중복되는 키를 허용하지 않는다. 값은 중복되어도 괜찮다.
이 두 자료구조는 이름에서 알 수 있듯이 해싱(Hashing)기법으로 데이터를 관리한다.
따라서 다음의 특징을 가진다.
- 데이터를 탐색할 때 성능이 뛰어나다.
- 각 데이터의 저장 위치가 저장 순서와 관련이 없다. (데이터가 연속적으로 저장되는 배열과 다르다)
쓰임새
1. HashSet
- 특정 데이터 집합 중 어떠한 값이 존재하는지 여부를 판단할 때 쓰기 좋다.
2. HashMap
- 특정 데이터 집합의 요소들에 순위를 매길 때, 값이 같은 요소가 같은 순위를 가져야 하는 경우 쓰기 좋다. key에는 값 자체를 저장하고 value에는 순위를 저장한 뒤, 값을 기준으로 순위를 알려달라는 요청이 들어오면 HashMap을 탐색하면 된다.
- 좌표압축 시에도 쓰기 좋다.
더보기
쓰임새는 관련된 알고리즘 문제를 풀 때마다 추가한다.