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
'CS 공부 > 자료구조' 카테고리의 다른 글
이진탐색트리(Binary Search Tree) (0) | 2023.02.13 |
---|---|
트리(Tree), 이진트리(Binary Tree) (0) | 2023.02.07 |
맵(map)과 해시 테이블(hash table) (0) | 2023.02.06 |
List - ArrayList, LinkedList (0) | 2023.01.26 |
배열, 동적배열, 연관배열 (0) | 2023.01.25 |