2013년 9월 23일 월요일

[Team L.A.D] 재학생 Study 02 - Collection 의 이해 Set

자 오늘 부터 Collection 을 제대로 이해해 보자.

너무 이건 내용이 방대해서

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 이 가장 빠르다.


댓글 없음:

댓글 쓰기