map中是传值还是引用
我有个工程,大量的从一个Map中取出String,再存入另两个Map,有点担心内存。
f(Map map1,Map map2,Map map3){
String s = (String)map1.get("a"); //取出来的s是值还是引用?
map2.put("a",s); //存入的s是值还是引用?
map3.put(s,"a"); //存入的s是值还是引用?
}
我理解,java传的都是引用,也就是3个map中用的都是同一个s,不会拷贝3份。
想确认一下。
------解决方案--------------------
没错。
------解决方案--------------------
虽然理论上说,取决于 Map 的具体实现。
常用的 HashMap, TreeMap 都是你想的那样。
------解决方案--------------------lz可以用 == 试试, 相等就是一样了
------解决方案--------------------这java中,基本上你不去new一下,或者不去重写=号,基本上都是传引用