- Java code
import java.util.HashMap;public class AAA { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<Integer, String>(); String str = "1"; map.put(1, str); System.out.println(map.get(1)); str = "2"; System.out.println(map.get(1)); }}
为什么结果是两个1而不是1和2呢?
------解决方案--------------------
很明显你是改变的str的值而已,相当于原本str指向一个地址1,然后你告诉了map这个地址,然后你的str又重新指向一个地址,现在这个地址的值为2了,但是你并没有给map,也没有改变map原先的指向,当然打印出来的也还是1了撒。