ich folgende hashmap erklärt habe:die get() Funktion für Java HashMaps
HashMap<Integer, Hive> hives
Wo Hive ein Objekt ist.
Wenn ich "hives.get (2)" aufrufen, wird es eine Kopie des Objekts Hive an dieser Stelle oder eine Referenz darauf zurückgeben?
Mein Ziel ist es, das Hive-Objekt an diesem Ort zu ändern. Wenn es die Referenz zurückgibt, kann ich einfach die zurückgegebene Struktur ändern und fertig sein. Wenn jedoch eine Kopie zurückgegeben wird, muss ich diese Kopie wieder in die Hash-Map kopieren.
Sorry für die einfache Frage. Ich habe versucht, mich nach einer Lösung umzusehen, aber überall, wo ich hinsah, sagte ich einfach, dass der Wert zurückgegeben würde, es wurde nicht gesagt, ob es eine Kopie des Wertes oder ein Verweis darauf wäre.
Danke, Zain
- Java ist nach Wert übergeben. http://javadude.com/articles/passbyvalue.htm – cherouvim
Okay, da Sie Objektzeiger in Java nicht dereferenzieren können, denke ich, es ist * technisch * pass-by-value. Aber das zu sagen, wäre für die Person, die die Frage stellte, völlig irreführend. Es scheint meiner Meinung nach eine Art pingeliges Argument zu sein. – hbw
Alles in Java ist nach Wert. Sie übergeben Objektreferenzen nach Wert. Wenn Sie die Objektreferenz als Referenz übergeben haben, können Sie den Wert der Referenz ändern. Daher könnte eine aufgerufene Methode den Wert der Referenz in der aufgerufenen Methode ändern. Java unterstützt dies nicht, da nur Wert übergeben wird. –