CS 공부/자료구조

Set과 HashSet

hyunzxn 2023. 2. 7. 16:58

1. Set

특징

- 순서를 보장하지 않는다.

- 중복을 허용하지 않는다.

- 데이터 조회가 List보다 빠르다.

 

언제쓰는 것이 좋은가?

- 중복을 허용하지 않을 때

- 데이터 존재 여부를 확인할 때

 

구현체

- Hash Set

- Linked Hash Set

- Tree Set

 

 

2. Hash Set

특징

- Hash Table을 사용

- key를 통해 바로 데이터에 접근하는 것이 가능하기 때문에 데이터 조회 속도가 빠르다.

 

Java: Hash Set

- 자바에서 Hash Set은 내부적으로 Hash Map을 이용해서 구현되어있다.

- Set에 넣고 싶은 데이터를 key에 넣고 value 자리에는 임의의 dummy 데이터를 넣는다.

- Set에 데이터가 있는지 없는지를 확인하기 위해서는 containsKey( )를 사용하면 된다.

 

 

3. List와 비교

- 데이터 자체가 중복 여부가 없다면 List를 쓰는 것이 나을 수도 있다.

- iteration(반복)을 돌 때 List는 순서가 일단 있고 중간에 비어있는 공간이 없는데 반해, Set은 중간에 비어있는 공간이 있을 수도 있다. 이렇게 되면 반복도는데 시간이 더 걸리게 되므로 List가 더 바람직하다. 

- 단순히 데이터를 저장해놓고 데이터 순회하면서 반복적인 무언가를 할 것이라면 List가 나을 수도 있다.

 

 

[Thanks to]

- 유튜브 쉬운코드

 

 

 

 

 

 

 

728x90