Hashmap zickt

C

Carcharoth

Aktives Mitglied
Vorab : allen ein gutes Neues Jahr 2021 !

Ich habe einen schwierigen Fall. Ich habe innerhalb eines komplexen Programmes ein scheinbares Fehlverhalten isoliert.

Es gibt eine Hashmap mit Integer-Paare.
Java:
private HashMap<Integer, Integer> tourZugehörigkeit;

Irgendwann im Code, will ich 2 Values dieser Hashmap vergleichen (z.B. für Key 124 und 148).

Tue ich dies direkt wie folgt:
Java:
System.out.println("tourZugehörigkeit.get(124)=" + tourZugehörigkeit.get(124));
System.out.println("tourZugehörigkeit.get(148)=" + tourZugehörigkeit.get(148));
System.out.println("tourZugehörigkeit.get(124)==tourZugehörigkeit.get(148): " + (tourZugehörigkeit.get(124)==tourZugehörigkeit.get(148)));
System.out.println("tourZugehörigkeit.get(124)-tourZugehörigkeit.get(148): " + (tourZugehörigkeit.get(124)-tourZugehörigkeit.get(148)));

kriege ich folgende Konsolen-Ausgaben:
Java:
tourZugehörigkeit.get(124)=146
tourZugehörigkeit.get(148)=146
tourZugehörigkeit.get(124)==tourZugehörigkeit.get(148): false
tourZugehörigkeit.get(124)-tourZugehörigkeit.get(148): 0

Zeile 3 überrascht mich doch sehr !

Mache ich es indirekt über Hilfsvariablen,
Java:
int ai = tourZugehörigkeit.get(124);
int aj = tourZugehörigkeit.get(148);
System.out.println("ai=" + ai);
System.out.println("aj=" + aj);
System.out.println("ai==aj: " + (ai==aj));
System.out.println("ai-aj:" + (ai-aj));

funktioniert es einwandfrei:
Java:
ai=146
aj=146
ai==aj: true
ai-aj:0

PS: es läuft meines Wissens kein anderer Thread welcher die Hashmap während der Ausgabe verändern könnte.

Ich beisse hier etwas auf Granit und wäre dankbar für Denkanstösse.
 
Blender3D

Blender3D

Top Contributor
Referenzvergleich:
public class ReferenzTest {

    public static void main(String[] args) {
        Integer a = new Integer(2);
        Integer b = new Integer(2);
        System.out.println(a == b);
        System.out.println(a.intValue() == b.intValue());
    }
}
 
temi

temi

Top Contributor
Der Datentyp "Integer", ist im Gegensatz zu "int", ein Objekt und Objekte vergleicht man i. d. R. mit equals().
Java:
System.out.println("tourZugehörigkeit.get(124)==tourZugehörigkeit.get(148): " + (tourZugehörigkeit.get(124).equals(tourZugehörigkeit.get(148)));
 
C

Carcharoth

Aktives Mitglied
OK, habe ich verstanden ! Danke für die schnelle und effiziente Hilfe.
 
C

Carcharoth

Aktives Mitglied
Nachtrag:
OK, Objekte vergleicht man mit equals().
Was ist wenn ich ein Objekt auf null prüfen will. Auch mit equals ?
 
C

Carcharoth

Aktives Mitglied
OK, aber ist die folgende Syntax in Ordnung (meineVariable ist ein Objekt)?

Java:
if (meineVariable!=null) {
    ...
}
 
kneitzel

kneitzel

Top Contributor
Ja, denn Du willst ja die Referenz prüfen. Du willst wissen, ob die Referenz null ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S HashMap contains() Methode Java Basics - Anfänger-Themen 1
Z Satz aufteilen und die Wörter zählen (HashMap) Java Basics - Anfänger-Themen 15
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
P Verschachtelte Hashmap Java Basics - Anfänger-Themen 6
I Sortiert eine HashMap nicht gleich wie eine ArrayList? Java Basics - Anfänger-Themen 1
B HashMap alphabetisch sortieren Java Basics - Anfänger-Themen 2
J HashMap Java Basics - Anfänger-Themen 5
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
U Hashmap Iterator selbst implementieren Java Basics - Anfänger-Themen 10
N HashMap in List good practice? Java Basics - Anfänger-Themen 2
K Value eines HashMaps in einer HashMap wiedergeben. Java Basics - Anfänger-Themen 5
O Hashmap, ArrayList, LinkedList Java Basics - Anfänger-Themen 7
O HashMap - ArrayList Java Basics - Anfänger-Themen 29
J Hashmap langsamer als compareTo? Java Basics - Anfänger-Themen 23
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
J Erhöhen eines Values als Integer bei gleichen Keys in HashMap Java Basics - Anfänger-Themen 12
N Methoden HashMap interne Werte miteinander vergleichen Java Basics - Anfänger-Themen 7
W The type Long is not visible HashMap Java Basics - Anfänger-Themen 4
M Objekt mit Hashmap vergleichen Java Basics - Anfänger-Themen 22
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
C HashMap - alle keys haben values der letzten put-Anweisung Java Basics - Anfänger-Themen 3
J Hashmap auslesen Java Basics - Anfänger-Themen 7
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
GreenTeaYT HashMap dupliziert meine Elemente? Java Basics - Anfänger-Themen 2
shiroX Methoden Morse-Code Übersetzer mit HashMap Java Basics - Anfänger-Themen 5
E HashMap Problem Java Basics - Anfänger-Themen 5
P Hashmap anstatt LinkedList? Java Basics - Anfänger-Themen 6
T HashMap und die Methoden Java Basics - Anfänger-Themen 13
N Methoden Interaktives PDF mit HashMap befüllen Java Basics - Anfänger-Themen 0
Z Hashmap auseinandernehmen und analysieren Java Basics - Anfänger-Themen 7
B Durchlaufen von Hashmap und Arraylist Java Basics - Anfänger-Themen 8
F HashMap oder welches Array? Java Basics - Anfänger-Themen 4
T HashMap Java Basics - Anfänger-Themen 24
L Hashmap mit variablem Key Java Basics - Anfänger-Themen 9
M Collections Probleme mit Hashmap Java Basics - Anfänger-Themen 4
N Collections String in HashMap umwandeln Java Basics - Anfänger-Themen 3
Z HashMap richtig benutzen Java Basics - Anfänger-Themen 2
lgund HashMap // TS3 Query Java Basics - Anfänger-Themen 7
Z Hashmap Iterator löscht nicht Java Basics - Anfänger-Themen 8
E Hashmap Wert auslesen Java Basics - Anfänger-Themen 2
S Printstream für einen Hashmap Loop Java Basics - Anfänger-Themen 1
dat_vin OOP Hashmap und Attribute Java Basics - Anfänger-Themen 7
C Check ob eine HashMap schon existiert Java Basics - Anfänger-Themen 16
P Vererbung Eigene HashMap Variante Java Basics - Anfänger-Themen 2
R Hashmap in anderer Klasse nicht benutzbar Java Basics - Anfänger-Themen 1
T Java Hashmap Java Basics - Anfänger-Themen 3
L Gibt es etwas wie "HashMap <String, String, String> Java Basics - Anfänger-Themen 9
K HashMap mit Daten aus ArrayList befüllen Java Basics - Anfänger-Themen 14
S OOP Klasse mit static-Eigenschaften - HashMap füllen Java Basics - Anfänger-Themen 6
O HashMap Fragen Java Basics - Anfänger-Themen 8
T HashMap Werte einfügen, durchsuchen und auslesen Java Basics - Anfänger-Themen 17
M Semantisches Problem HashMap/Netzwerk Java Basics - Anfänger-Themen 4
D HashMap Keys durchlaufen Java Basics - Anfänger-Themen 2
B Zugriff auf csv-Datei per hashmap Java Basics - Anfänger-Themen 5
M HashMap keys ausgeben Java Basics - Anfänger-Themen 2
S In einer Hashmap Klassen regestrieren Java Basics - Anfänger-Themen 2
H Collections Was ist schneller - HashMap + Sort v TreeMap? Java Basics - Anfänger-Themen 75
F HashMap nach kleinstem Value durchsuchen Java Basics - Anfänger-Themen 11
G HashMap Java Basics - Anfänger-Themen 6
F Wortpaare - HashMap - ArrayList Java Basics - Anfänger-Themen 6
M HashMap Frage Java Basics - Anfänger-Themen 3
M HashMap - put() reagiert nicht? Java Basics - Anfänger-Themen 8
N Cast eines Objektes in eine Hashmap Java Basics - Anfänger-Themen 13
A CSV Zeilenweise einlesen und in einer HashMap speichern Java Basics - Anfänger-Themen 12
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
K HashMap auf leere Key-Value-Paare prüfen Java Basics - Anfänger-Themen 14
F Hilfe bei der HashMap. Java Basics - Anfänger-Themen 3
F HashMap vs. TreeMap Java Basics - Anfänger-Themen 5
B HashMap Java Basics - Anfänger-Themen 9
C Collections String[] als value in HashMap Java Basics - Anfänger-Themen 6
V Hashmap Iterieren Java Basics - Anfänger-Themen 4
C Csv File in Hashmap ausgeben Java Basics - Anfänger-Themen 14
T HashMap<String,Object> Werte auslesen Java Basics - Anfänger-Themen 5
I HashMap sortieren Java Basics - Anfänger-Themen 10
I HashMap Java Basics - Anfänger-Themen 11
H Collections Brauche modifizierte HashMap Java Basics - Anfänger-Themen 6
H TreeMap/HashMap synchronisieren Java Basics - Anfänger-Themen 2
A Datentypen Hashmap to Array Java Basics - Anfänger-Themen 11
D HashMap überschreibt Werte Java Basics - Anfänger-Themen 7
pg1337 Interface Comparable-Interface bei HashMap Java Basics - Anfänger-Themen 21
D erweiterte hashmap Java Basics - Anfänger-Themen 5
H HashMap<Int, String> - Er findet die Int-Klasse nicht. Java Basics - Anfänger-Themen 3
L HashMap zu JList Java Basics - Anfänger-Themen 6
S Erste Schritte HashMap Kurze Frage - Werte über Schleife ausgeben Java Basics - Anfänger-Themen 30
F Collections ArrayList oder Hashmap mittel Collections.sychronised Java Basics - Anfänger-Themen 6
B Klassen HashMap Zwei Objekte, gleicher Key Java Basics - Anfänger-Themen 4
N HashMap fehlerhafte Rückgabe Java Basics - Anfänger-Themen 7
K Durch eine HashMap wandern? Java Basics - Anfänger-Themen 2
A Hashmap gefüllt mit Arrays. Nutzlos? Java Basics - Anfänger-Themen 6
K equals in Hashmap() Java Basics - Anfänger-Themen 4
D HashMap Java Basics - Anfänger-Themen 7
A HashMap.containtsKey Java Basics - Anfänger-Themen 15
I HashMap Parameter übergeben Java Basics - Anfänger-Themen 14
S Generische HashMap Java Basics - Anfänger-Themen 2
D Hashtable/Hashmap Java Basics - Anfänger-Themen 2
N HashMap<String, Object> bei jre4 Java Basics - Anfänger-Themen 3
F HashMap keySuche Java Basics - Anfänger-Themen 12
R JTabel + HashMap + Checkbox Java Basics - Anfänger-Themen 4
T Collections Werte aus einer HashMap auslesen, oder gehts auch einfacher ? Java Basics - Anfänger-Themen 6
T Liste in Hashmap Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben