ho dichiarato quanto segue hashmap:la get() funzione per Java HashMaps
HashMap<Integer, Hive> hives
Dove Hive è un oggetto.
Se chiamo "hives.get (2)" restituirà una copia dell'oggetto Hive in quella posizione o un riferimento ad esso?
Il mio obiettivo è modificare l'oggetto Hive in quella posizione. Se restituisce il riferimento, posso semplicemente modificare l'hive restituito ed essere fatto. Tuttavia, se viene restituita una copia, dovrò rimetterla nella hashmap.
Ci scusiamo per la semplice domanda. Ho provato a cercare una soluzione, ma ovunque guardassi diceva semplicemente che il valore sarebbe stato restituito, non ha detto se sarebbe stata una copia del valore o un riferimento ad esso.
Grazie, Zain
- Java è un valore passato. http://javadude.com/articles/passbyvalue.htm – cherouvim
Ok, dal momento che non è possibile effettuare il deferenziazione di puntatori di oggetti in Java, suppongo che sia * tecnicamente * passaggio per valore. Ma dire che sarebbe totalmente fuorviante per la persona che ha posto la domanda. A mio avviso, sembra una specie di argomento spinoso. – hbw
Tutto in Java è passato per valore. Si passano i riferimenti agli oggetti per valore. Se hai passato il riferimento all'oggetto per riferimento, allora potresti cambiare il valore del riferimento. Di seguito, un metodo chiamato potrebbe cambiare il valore del riferimento nel metodo del callee. Java non supporta questo, perché è solo passaggio per valore. –