차이점을 살펴보기 전에 HashSet과 TreeSet이 무엇인지 간략하게 살펴보겠습니다.
HashSet은 해시 테이블을 저장용으로 사용하는 컬렉션입니다. Set 인터페이스를 구현합니다. 즉, 중복 요소를 허용하지 않습니다. 요소는 순서가 없고 정렬되지 않으므로 HashSet은 빠른 조회, 삽입 및 삭제가 필요한 시나리오에 적합합니다.
TreeSet은 NavigableSet 인터페이스를 구현하는 컬렉션입니다. 저장을 위해 Red-Black 트리를 사용합니다. 즉, 요소가 정렬되고 정렬된 방식으로 저장됩니다. TreeSet은 중복 요소도 허용하지 않지만 요소의 자연스러운 순서를 유지해야 하는 상황에 이상적입니다.
HashSet : 내부적으로 해시 테이블을 사용합니다. 각 요소의 해시 코드는 저장 위치를 결정하는 데 사용됩니다. 두 요소의 해시 코드가 동일한 경우 체인 또는 프로빙이라는 기술을 사용하여 충돌을 처리합니다.
예제 코드:
SethashSet = new HashSet(); hashSet.add("Apple"); hashSet.add("Banana"); hashSet.add("Mango");
TreeSet : 내부적으로 Red-Black 트리를 사용합니다. 각 요소는 자연 순서 또는 제공된 비교기에 따라 배치되어 트리의 균형이 유지되도록 합니다.
예제 코드:
SettreeSet = new TreeSet(); treeSet.add("Apple"); treeSet.add("Banana"); treeSet.add("Mango");
HashSet 및 TreeSet 모두 중복 요소를 허용하지 않습니다. 그러나 중복을 감지하는 방법은 다릅니다. HashSet는 hashCode () 및 equals () 메소드를 사용하는 반면, TreeSet은 compareTo () 또는 Comparator[를 사용합니다. &&&].
2.7 메모리 사용량HashSet 대 LinkedHashSet : HashSet는 순서를 보장하지 않지만 LinkedHashSet는 삽입 순서를 유지합니다. 반면에 TreeSet 는 요소를 자연스럽게 정렬하거나 사용자 지정 비교기를 사용하여 정렬합니다.
2.9 사용 사례
// HashSet Example Set3. 결론hashSet = new HashSet(); hashSet.add("Zebra"); hashSet.add("Apple"); hashSet.add("Mango"); System.out.println("HashSet: " hashSet); // Output may be unordered, e.g., [Apple, Mango, Zebra] // TreeSet Example Set treeSet = new TreeSet(); treeSet.add("Zebra"); treeSet.add("Apple"); treeSet.add("Mango"); System.out.println("TreeSet: " treeSet); // Output will be sorted, e.g., [Apple, Mango, Zebra]
에서 더 많은 게시물 읽기: Java에서 HashSet과 TreeSet의 주요 10가지 차이점
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3