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을 탐색하면 된다.
  • 좌표압축 시에도 쓰기 좋다.

 

더보기

쓰임새는 관련된 알고리즘 문제를 풀 때마다 추가한다.

 

'Java 공부 > Java 일반' 카테고리의 다른 글

자바로 트리 만들기  (0) 2022.02.12
부분문자열을 얻어올 때 사용하는 substring()  (0) 2022.02.11
개행문자  (0) 2022.01.28
Arrays.sort() 사용시 주의할 점  (0) 2022.01.14
버퍼드리더 BufferedReader  (0) 2022.01.13