Différence entre HashSet et TreeSet

La différence la plus importante entre HashSet et TreeSet est la performance. HashSet est plus rapide que TreeSet, ce qui signifie que si vous avez besoin de performances, utilisez HashSet, mais HashSet ne fournit aucun ordre. Par conséquent, si vous avez besoin que les élements soient ordonnés, vous devez passer à TreeSet, qui permet de trier les clés. Le tri peut être un ordre naturel défini par une interface « Comparable » ou tout ordre particulier défini par une interface « Comparator » en Java.
 
 

Différence entre ArrayList et HashMap en JavaDifférence entre ArrayList et HashMap en JavaArrayList et HashMap sont des classes de collection couramment utilisées en Java. Bien que les deux fassent partie du framework collection, la manière dont ils…Lire plus  

Table de comparaison
HashSetTreeSet
Order/TriHashSet ne fournit aucune garantie d’orderTreeSet fournit une garantie d’order
ComparaisonHashSet utilise la méthode equals() pour la comparaisonTreeSet utilise la méthode compareTo() pour la comparaison
Élément nulHashSet autorise un élément nullTreeSet n’autorise pas les objets nuls
ImplémentationImplémenté en interne avec HashMapImplémenté en interne en utilisant TreeMap
PerformanceHashSet est plus rapide [complexité temporelle O(1)]TreeSet est plus lent pour la plupart des applications, telles que l’ajout, la suppression et la recherche. [complexité temporelle de O(log (n))].

 

Exemple de HashSet
import java.util.HashSet; 

class HashSetExemple { 
    public static void main(String[] args) 
    { 
        // Créer un objet HashSet 
        HashSet<String> hashset = new HashSet<String>(); 
  
        // Ajouter des éléments dans HashSet
        hashset.add("fraise"); 
        hashset.add("orange"); 
        hashset.add("pomme"); 
		
        // HashSet autorise une valeur null
        hashset.add(null); 
  
        // La duplication est supprimée
        hashset.add("pomme"); 
  
        // Afficher les éléments de HashSet
        System.out.println("HashSet contient: "); 
        for (String tmp : hashset) { 
            System.out.println(tmp); 
        } 
    } 
}

La sortie:

HashSet contient:
pomme
fraise
orange
Différence entre List, Set et Map en javaDifférence entre List, Set et Map en javaList et Set sont des interfaces qui héritent l’interface Collection. Ici, nous allons discuter de la différence entre List, Set et Map en Java.  …Lire plus

 

Exemple de TreeSet
import java.util.TreeSet; 

class TreeSetExemple { 
  
    public static void main(String[] args) 
    { 
        // Créer un objet TreeSet 
        TreeSet<String> treeset = new TreeSet<String>(); 
   
        // Ajouter des éléments dans TreeSet
        treeset.add("pomme"); 
        treeset.add("orange"); 
        treeset.add("fraise"); 
		
        // HashSet n'autorise pas les valeurs null
        //treeset.add(null); //Java.lang.NullPointerException 

  
        // La duplication est supprimée
        treeset.add("pomme"); 
  
        // Afficher les éléments de TreeSet
        System.out.println("TreeSet contient: "); 
        for (String tmp : treeset) { 
            System.out.println(tmp); 
        } 
    } 
}

La sortie:

TreeSet contient:
fraise
orange
pomme
QCM-JavaQCM Java – Programmation Orientée ObjetQCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
Les points communs entre HashSet et TreeSet en Java
  • HashSet et TreeSet les deux implémentent l’interface java.util.Set, ce qui signifie qu’ils respectent le contrat de l’interface Set et n’autorisent aucune duplication.
  • HashSet et TreeSet ne sont ni thread-safe ni synchronisés. Bien que vous puissiez les rendre synchronisés à l’aide de la méthode Collections.synchronizedSet().
  • Le troisième point commun entre TreeSet et HashSet est que l’itérateur des deux classes est de nature rapide. Ils lèveront une exception ConcurrentModificationException si l’itérateur est modifié une fois que l’Iterator est créé. cela n’est pas garanti et le code de l’application ne doit pas s’appuyer sur ce code.

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *