Pourquoi est-HashMap plus vite que HashSet?

J'ai été la lecture/la recherche de la raison pour laquelle HashMapest plus rapide que HashSet.

Je ne suis pas tout à fait comprendre les instructions suivantes:

  1. HashMap est plus rapide que HashSet parce que les valeurs sont associées à une clé unique.
  2. Dans HashSet, membre de l'objet est utilisé pour le calcul de hashcode de la valeur qui peut être la même pour les deux objets afin de equals() méthode est utilisée pour vérifier l'égalité. Si elle renvoie false, cela signifie que les deux objets sont différents. Dans HashMap, le hashcode de la valeur est calculée à l'aide de la clé de l'objet.
  3. La HashMap hashcode valeur est calculée à l'aide de la clé de l'objet. Ici, l'objet de membre est utilisée pour calculer le hashcode, qui peut être le même pour les deux objets, de sorte equals() méthode est utilisée pour vérifier l'égalité. Si elle renvoie false, cela signifie que les deux objets sont différents.

Pour conclure ma question:

  1. J'ai pensé HashMap et HashSet calculer le hashcode de la même manière. Pourquoi sont-ils différents?
  2. Pouvez-vous donner un exemple concret comment HashSet et HashMap le calcul de la hashcode différemment?
  3. Je sais ce qu'est un "objet clé", mais que signifie-t-il par les membres de "l'objet"?
  4. HashMap peut faire les mêmes choses que HashSet, et au plus vite. Pourquoi avons-nous besoin HashSet? Exemple:
    HashMap <Object1, Boolean>= new HashMap<Object1, boolean>();
    map.put("obj1",true);  => exist
    map.get("obj1");  =>if null = not exist, else exist
Vous devriez lire à propos de la différence entre Map et Set. Ils sont de deux types différents de Collections. Une fois que vous l'aurez fait, il devrait être clair pourquoi l'obtention d'un objet spécifique à partir d'une carte est plus rapide qu'à partir d'un ensemble.
Hashset est construit sur la table de hachage. Et l'Ensemble est utilisé pour l'unicité. Il nota la valeur de clé de paire de la collection.
Oui. Je sais qu'ils mettent en œuvre différentes de l'interface. Mais certaines personnes disent que le hashset est à l'aide de hashmap dans le backend. Si c'est la vérité, pourquoi hashset sera plus lente que la table de hachage?
essayez-le vous-même.... si vous ne croyez pas si.. j'ai été faire un en ligne juge à l'aide de hashset mais le temps de dépasser. Mais j'ai changé pour une table de hachage, j'ai passé.
Vous pouvez sauvegarder votre demande avec des exemples de code que vous avez testé, les horaires etc?

OriginalL'auteur runcode | 2013-04-29