Debugger HashWert

Paddel

Bekanntes Mitglied
Hallo,
ich möchte gerne über eine HashMap itterieren. Die Map ist:
Java:
	HashMap<Ressource, Integer> benötigte_Ressourcen = new HashMap<Ressource, Integer>();
Ich iteriere mit:
Java:
		for(Ressource res : benötigte_Ressourcen.keySet()){
			
			
			sit.getResourcen().put(res, 2);
		}
drüber. Die Hash Funktion in Ressource:
Java:
@Override
	public int hashCode() {
		if(name.equals("Holz"))
		
			return 8;
		
		else return 9;
	}
Dummymässig implementiert.
Im Debugger ist der HashWert im KeySet immer 8. Aber res hat immer den HashWert 0. Egal was ich mach. Kann mir das jemand erklären?
gruß
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
was ist deine Frage? was mit der Anzeige im Debugger nicht stimmt?
du nennst nichtmal das verwendete Tool, im Zweifel ist das aber komplett keine Java-Frage

vorerst nach Vermutung Titel umbenannt und verschoben
 

Paddel

Bekanntes Mitglied
Die Frage ist wieso mir kein HashCode berechnet wird und dieser immer 0 ist. Wenn ich das Objekt im Debugger untersuche hat es hash=0. Und eigentlich muss er mir als Hash eine 8 oder eine 9 ausgeben. res.getHash() tut das auch.

Meinst du mit Tool Eclipse?
 
S

SlaterB

Gast
mit mir triffst du leider auf einen überzeugten Debugger-Nicht-Nutzer,
so ein Ding ist eine Blackbox, das kann 0, 8, 9 oder 'Guttenberg' anzeigen, hat alles absolut keine Aussage,
solange es stimmt und nachvollziehbar ist, dann ist alles gut, aber Fehler kann man in einer Blackbox nicht erklären

wenn du ein Java-Programm hast mit Java-Objekten und Java-Methoden die Java-int-Werte zurückgeben,
dann gib doch diese Informationen ganz einfach aus:
Java:
System.out.println("Object sowieso hat folgenden Hashwert: "+o.hashCode());
damit haben sich alle Fragen erledigt oder kommt da auch 0 raus, für ein Objekt mit der überschriebenen Methode?
dann muss man genauer agieren, etwa:
Java:
System.out.println("gleich wird Hashwert abgefragt");
System.out.println("Object sowieso hat folgenden Hashwert: "+o.hashCode());

sowie

@Override
    public int hashCode() {
        System.out.println("in hashCode der Klasse ..");
        if(name.equals("Holz")) {        
            System.out.println("werde gleich 8 zurückgeben");
            return 8;
        }
        System.out.println("werde gleich 9 zurückgeben");
        return 9;
    }
anhand des Logs der Ausgaben kann man ungefähr erkennen was so alles passiert,

natürlich sind gewisse Fehlersituationen immer denkbar, etwa noch mehr überschriebene Klassen mit anderen hashCode()-Methoden,
Debugger kann gewiss auch dabei helfen

edit:
die Anzeige im Debugger ist das Klassenattribut hash im String "Holz",
Methoden-Werte werden vielleicht gar nicht angezeigt
 
Zuletzt bearbeitet von einem Moderator:

Paddel

Bekanntes Mitglied
Alles klar hab den Fehler. In der equals Methode den String mit == statt mit .equals() verglichen. Blöder Fehler.
Danke für deine Hilfe!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Debugger - Netbeans vs. VSCode IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
melaniemueller Eclipse Problem mit dem Debugger IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
G Debugger in eclipse funktioniert erst nach Neustart IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
G Eclipse, beim Debugger Objekte nach Wert durchsuchen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
B Eclipse Programmatischer Sprung in Debugger IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
H Netbeans Debugger Session sichern? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
C Eclipse im Debugger int Werte im Hex Format darstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
F NetBeans Debugger will nicht mehr IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
B Eclipse Debugger Plugin "Visual Studio Style" IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
G Eclipse Debugger IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
W Eclipse Debugger: Variablen-Anzeigen nur mit Breakpoint IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 12
T RAM Verbrauch von Objekten im Eclipse Debugger checken IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
I JTextArea Problem und Debugger IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
ARadauer eclipse debugger startet neu wenn ich code ändere IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
B Eclipse - Debugger IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
J Debugger von NetBeans 3.6 IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
H Problem mit dem Debugger von Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
S debugger IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6

Ähnliche Java Themen


Oben