Tôi đã tuyên bố hashmap sau:các get() chức năng cho java hashmaps
HashMap<Integer, Hive> hives
đâu Hive là một đối tượng.
Nếu tôi gọi "hives.get (2)" nó sẽ trả về một bản sao của đối tượng Hive tại vị trí đó hoặc tham chiếu đến nó?
Mục tiêu của tôi là sửa đổi đối tượng Hive tại vị trí đó. Nếu nó trả về tham chiếu, tôi chỉ có thể sửa đổi hive được trả lại và được thực hiện. Tuy nhiên, nếu một bản sao được trả về sau đó tôi sẽ phải đưa bản sao đó trở lại vào bản băm.
Xin lỗi vì câu hỏi đơn giản. Tôi đã thử tìm kiếm một giải pháp, nhưng ở khắp mọi nơi tôi nhìn nó chỉ đơn giản nói rằng giá trị sẽ được trả lại, nó không nói nếu nó sẽ là một bản sao của giá trị hoặc một tham chiếu đến nó.
Xin cảm ơn, Zain
- Java được truyền theo giá trị. http://javadude.com/articles/passbyvalue.htm – cherouvim
Được rồi, vì bạn không thể dereference đối tượng con trỏ trong Java, tôi đoán đó là * kỹ thuật * pass-by-value. Nhưng nói điều đó sẽ hoàn toàn gây hiểu nhầm cho người hỏi câu hỏi đó. Nó có vẻ giống như một đối số nitpicky, theo ý kiến của tôi. – hbw
Mọi thứ trong Java đều được truyền theo giá trị. Bạn vượt qua các tham chiếu đối tượng theo giá trị. Nếu bạn đã chuyển tham chiếu đối tượng theo tham chiếu, thì bạn có thể thay đổi giá trị của tham chiếu. Therefoer, một phương thức được gọi có thể thay đổi giá trị của tham chiếu trong phương thức callee. Java không hỗ trợ điều này, bởi vì nó chỉ được truyền theo giá trị. –