Java에서 TreeSet과 HashSet의 성능 비교

이 튜토리얼은   사이의 모든 차이점과 공통 기능에 대해 설명합니다. TreeSetHashSet입니다. 실제로, 이것은 ArrayListVectorHashTableHashMap입니다. 아마도 가장 중요한 차이점은 성능입니다.

TreeSet 대 HashSet

1)  HashSet은 다음과 같은 기본 작업에 대해 일관된 성능 시간을 제공합니다. 추가, 제거, containssize입니다. HashSetTreeSet 요소를 정렬할 필요가 없는 경우 HashSet에는 정렬 시스템이 없습니다. 트리셋  기본 작업에 대한 log(n) 시간 보장(addremove  et  포함).

2)  HashSet  은 항목이 정렬되는 것을 보장하지 않습니다. TreeSet은 요소가 오름차순으로 정렬되거나 interface Comparable 또는 인터페이스 Java.

TreeSet과 Java의 HashSet

2) 두 구현은 동기화되지 않습니다. Collections.synchronizedSet().

3) 정렬된 세트를 원하면 HashSet 그런 다음 트리셋  TreeSet 요소를 추가합니다.

결국 사용 선택은 전적으로 필요에 달려 있다고 말할 수 있습니다.

HashSet의 예:

import java.util.HashSet; 

public 클래스 예제 {

public static void main(String[] args) {

HashSet< 문자열> hset = 새로운 HashSet< 문자열> ();

hset.add("1");
hset.add("3");
hset.add("2");
hset.add("5");

for(문자열 s: hset)
System.out.println(s);
}
}

Result:
3
2
1
5
TreeSet 예:

import java.util.TreeSet; 

public 클래스 예제 {

public static void main(String[] args) {

TreeSet< 문자열> tset = 새 트리셋< 문자열> ();

tset.add("1");
tset.add("3");
tset.add("2");
tset.add("5");

for(문자열 s: tset)
System.out.println(들);
}
}

Result:
1
2
3
5
References:
Java에서 HashSet과 TreeSet의 차이점
해시셋 대 트리셋