日期:2014-05-19  浏览次数:20659 次

HashMap问题
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了撒。