2013-10-31 4 views
3

나는 정렬 된 순서로 올 것 같은 데이터를 가지고있다. (정렬 된 순서로 키의 전체 집합을 만든 다음 무작위 순서로 복제한다.) 따라서 LinkedHashMap 또는 TreeMap을 모두 사용하여 순서를 유지할 수 있습니다 (맞습니까?). 내 질문은 다음 중 어느 것이 더 빠르며 더 효율적인 공간입니까?LinkedHashMap과 TreeMap이 더 빠릅니까?

+1

LinkedHashMap이 더 좋을 것이라고 생각합니다. 이유는 주문입니다 삽입 주문은 오른쪽 순서입니다. 반면에 treemap (red black tree)는 – farmer1992

+0

을 재현하는 데 드는 비용입니다. (Andrew Barber) : 그러나 질문은 너무 직접적입니다. 두 데이터 구조 중 어느 것을 사용해야합니까? ? 나는 그것이 유일한 기준이되는 속도로 좁힐 것이다. 도움이 될 것인가? –

+2

LinkedHashMap은 삽입 및 검색을 위해 O (1)이며 TeeMap은 O (log (N)) 인 것으로 문서화되어 있습니다. – EJP

답변

1

LinkedHashMap은 @EJP에서 설명한대로 TreeMap처럼 삽입하는 동안 값을 불필요하게 비교해야하기 때문에 삽입하는 것이 빠릅니다. LinkedHashMap은 이전 키와 다음 키에 대한 링크 만 필요하기 때문에 TreeMap은 부모 노드에 대한 링크와 자식에 대한 1+ 링크가 필요하지만 TreeMap은 약간 큰 메모리를 소비한다고 생각합니다.

내 투표는 LinkedHashMap입니다. 메모리가 적고 시간이 적으며 물론 CPU가 적습니다.