English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java에서 트리 셋과 해시 셋의 차이

해시셋과 트리셋은 모두 컬렉션 프레임워크에 속합니다. HashSet은 Set 인터페이스의 구현이며, TreeSet은 정렬된 집합을 구현합니다. TreeSet은 TreeMap을 지원하며, HashSet은 해시맵을 지원합니다

순서해시셋트리셋
1
구현 
해시셋은 해시테이블을 사용하여 구현됩니다 
트리셋은 트리 구조를 사용하여 구현됩니다 
2
공백 객체 
HashSet은 하나의 공백 객체를 허용합니다 
트리셋은 공백 객체를 사용할 수 없습니다. null 포인터 예외를 던집니다 
3
메서드 
해시셋은 두 객체를 비교하기 위해 equals 메서드를 사용합니다 
트리셋은 두 객체를 비교하기 위해 비교 메서드를 사용합니다 
4
혼합 객체 
현재 해시셋은 혼합 객체를 사용할 수 없습니다 
트리셋은 혼합 객체를 허용합니다 
5
주문 
HashSet은 어떤 순서도 유지하지 않습니다 
TreeSet은 객체의 정렬 순서를 유지합니다 

TreeSet 예제

class TreeSetExmaple {
   public static void main(String[] args){
      TreeSet<String> treeset = new TreeSet<String>();
      treeset.add("Good");
      treeset.add("For");
      treeset.add("Health");
      //중복 요소 추가
      treeset.add("Good");
      System.out.println("TreeSet : ");
      for (String temp : treeset) {
         System.out.println(temp);
      }
   }
}

출력 결과

TreeSet:
   Health
   For
   Good

HashSet 예제

class HashSetExample {
   public static void main(String[] args){
      HashSet<String> hashSet = new HashSet<String>();
      hashSet.add("Good");
      hashSet.add("For");
      hashSet.add("Health");
      //중복 요소 추가
      hashSet.add("Good");
      System.out.println("HashSet: ");
      for (String temp : hashSet) {
         System.out.println(temp);
      }
   }
}

출력 결과

TreeSet:
   Health
   Good
   For