너무 이건 내용이 방대해서
Set / List / Map 으로 나눠서 설명하고 Queue는 그냥 알아두는 용도로 하겠다.
그리고 기타적으로 Stack Class 에 대해서도 별도로 언급한다.
Set은
순서가 없고 (즉 색인이 없으며) , 중복을 허용하지 않는 Collection이다
Java Class Collection 을 상속받는다.
그럼 Set의 종류는 무엇이 있을까?
1. HashSet
- 데이터를 해시 테이블에 담는 클래스 , 당연히 순서 없다.
2. TreeSet
- red-black 이라는 트리에 데이터를 담는다. 값에 따라서 순서가 정해진다.
- 당연히 HashSet 보다 느리다. 데이터를 담으면서 동시에 정렬한다 하면
유용하지만.. 그닥 쓰지 않는다.
3. LinkedHashSet
- 해시 테이블에 데이터를 담는데 , 저장된 순서에 따라서 순서가 결정된다.
※ red-black 트리 : 이진 트리 구조로 데이터를 담는 구조 , 그러나 성능이 영
좋지 않은 트리 구조 이므로 사용하지 않길 권유 한다.
자 그럼 Set 명령어 중에 누가누가 빠른가 비교해 보실까 .
비교 대상
HashSet
TreeSet
LinkedHashSet
이 3가지의 속도와 메모리 사용량을 비교한다.
HashSet : TotalUsedTime :50 ms
TreeSet : TotalUsedTime :69 ms
LinkedHashSet : TotalUsedTime :39 ms
3개 모두 빠르지만 , LinkedHashSet 이 가장 빠르다.
댓글 없음:
댓글 쓰기