Wie ruft ich aus jedem Eimer ab, den der HashCode gespeichert hat? [geschlossen]
Posted: 18 Aug 2025, 09:33
In Java für einen Hashset und HashMap muss die HashCode () Methode einer benutzerdefinierten Klasse (d. H. Person , Produkt , usw.) überschrieben werden. Methode (durch ein Bucket )
[*] Überprüfen Sie die Existenz eines -Elements mit der entsprechenden Methode (erneut über einen bucket )
ist natürlich auch die gleiche mandatorische ()
Über die Berichterstattung < /p>
for(Product product: products) {
System.out.println(product.toString() + " - " + product.hashCode());
}
[/code]
Es erstellt einen einfachen Bericht.
Weil für die entsprechende -Methode die "zwei Hashcodes" gleich
[*] Das HashCode gespeichert am Eimer -Element
[*] Das -Codode des Elements mit dem Originalstaat (bekannt "mit dem Originalstaat (mit dem Original -State (bekannt Anruf) < /li>
< /ul>
Jetzt aus der folgenden Frage < /p>
java.util.hashset.Containt Testing Leads auf ein inkonsistentes Ergebnis < /li> < /> < /ul>
First Sie haben das Objekt in den Satz gestellt, dann hat es verändert, dass es seinen HashCode änderte. In dem Hashset bleibt jedoch das Objekt immer noch im alten Eimer bestehen. Welche Zahl wird aus dem ursprünglichen HashCode abgeleitet. Daher kann es nicht gefunden werden. />
Daher fehlschlägt der folgende Satz von AssertRue Methoden (beobachten Sie jedes neue Produkt erstelltes Objekt haben auch die Nummer mit +100)
Weil für die entsprechende Methode "zwei Hashcodes" nicht mehr das gleiche
Der HashCode am Eimer verwendet. HashCode des Elements basiert auf neu [/b] Zustand (mit dem Produkt bekannt.
Es meldet die neue HashCode jedes Elements, aber jeder Bucket hat das alte Hashcode . /> Jetzt für akademische und Forschung Zwecke, wenn möglich
Frage
Wie kann man von jedem Eimer den HashCode abrufen. List/Arrays von Hashcodes
Einer aus allen Eimer (die Anfrage in dieser Frage)
[*] Andere aus allen Elementen (bereits mit dem product.hashCode () Methode Call)
[*] Überprüfen Sie die Existenz eines -Elements mit der entsprechenden Methode (erneut über einen bucket )
ist natürlich auch die gleiche mandatorische ()
Über die Berichterstattung < /p>
for(Product product: products) {
System.out.println(product.toString() + " - " + product.hashCode());
}
[/code]
Es erstellt einen einfachen Bericht.
Code: Select all
assertTrue(products.contains(new Product("cod-001", "Guitar Samick", 100.00))); //passes
assertTrue(products.contains(new Product("cod-002", "Guitar Bass Ibanez", 200.00))) //passes
assertTrue(products.contains(new Product("cod-003", "Guitar Fender", 300.00)));//passes
assertTrue(products.contains(new Product("cod-004", "Guitar Bass Fender", 400.00)));//passes
[*] Das HashCode gespeichert am Eimer -Element
[*] Das -Codode des Elements mit dem Originalstaat (bekannt "mit dem Originalstaat (mit dem Original -State (bekannt Anruf) < /li>
< /ul>
Jetzt aus der folgenden Frage < /p>
java.util.hashset.Containt Testing Leads auf ein inkonsistentes Ergebnis < /li> < /> < /ul>
First Sie haben das Objekt in den Satz gestellt, dann hat es verändert, dass es seinen HashCode änderte. In dem Hashset bleibt jedoch das Objekt immer noch im alten Eimer bestehen. Welche Zahl wird aus dem ursprünglichen HashCode abgeleitet. Daher kann es nicht gefunden werden. />
Code: Select all
for(Product product: products) {
//each element is edited +100 to the number
product.setNumber(product.getNumber() + 100.00);
}
Code: Select all
assertTrue(products.contains(new Product("cod-001", "Guitar Samick", 200.00))); //fails
assertTrue(products.contains(new Product("cod-002", "Guitar Bass Ibanez", 300.00))) //fails
assertTrue(products.contains(new Product("cod-003", "Guitar Fender", 400.00)));//fails
assertTrue(products.contains(new Product("cod-004", "Guitar Bass Fender", 500.00)));//fails
Der HashCode am Eimer verwendet. HashCode des Elements basiert auf neu [/b] Zustand (mit dem Produkt bekannt.
Code: Select all
for(Product product: products) {
System.out.println(product.toString() + " - " + product.hashCode());
}
Frage
Wie kann man von jedem Eimer den HashCode abrufen. List/Arrays von Hashcodes
Einer aus allen Eimer (die Anfrage in dieser Frage)
[*] Andere aus allen Elementen (bereits mit dem product.hashCode () Methode Call)