Wie funktioniert Hashset in Bezug auf HashCode ()?Java

Java-Forum
Anonymous
 Wie funktioniert Hashset in Bezug auf HashCode ()?

Post by Anonymous »

Ich versuche, java.util.collection und java.util.map Ein wenig tiefer zu verstehen, aber ich habe einige Zweifel an Hashset Funktionalität: Instanz). ok, also kann ich sehen, dass ein Hashset immer über einen Hashtable im Hintergrund funktioniert. Ein Hashtable ist eine Struktur, die jedes Mal, wenn Sie ein neues Element hinzufügen möchten, nach einem Schlüssel und einem Wert verlangt. Dann werden der Wert und der Schlüssel in einem Eimer basierend auf dem Schlüsselhashcode gespeichert. Wenn die Hashcodes von zwei Tasten gleich sind, fügen sie beide Schlüsselwerte zu demselben Bucket hinzu, wobei eine LinkedList verwendet wird. Bitte korrigieren Sie mich, wenn ich etwas falsches gesagt habe. Aber der Hashtable fragt nach einem Wert und einem Schlüssel . Welchen Schlüssel verwendet er also? Verwendet es nur den Wert, den wir auch als Schlüssel hinzufügen möchten, und nehmen dann seinen HashCode? Bitte korrigieren Sie mich, wenn ich etwas falsches über Hashset Implementierung gesagt habe. Ich frage dies, weil in der Dokumentation lautet, dass jedes Mal, wenn wir Equals () Methode überschreiben, hashcode () Methode überschreiben müssen. OK, es macht wirklich Sinn, aber mein Zweifel ist, wenn es nur eine Empfehlung ist, die wir tun sollten, um alles "schön und perfekt" zu halten (auf diese Weise einsetzen), oder wenn es wirklich notwendig ist, weil möglicherweise viele Java -Standardklassen ständig HashCode () Methode Ihrer Objekte verwenden. In meiner Vision können ich andere Klassen anstelle dieser Klassen mit Sammlungen nicht sehen. Vielen Dank Jungs

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post