小弟想问一下,假设我有两个变量,他们的变量名分别是key, value
当我用map.put(key, value)方法加入这对键值的时候,可不可以仅将value的值加入map中,而不加入value这个变量?因为这个value变量在别处需要被修改,当我将value作为一个变量加入到map中去,之后修改会连同已经在map里面的value跟着变。
当我用map.put(key, value)方法加入这对键值的时候,可不可以仅将value的值加入map中,而不加入value这个变量?因为这个value变量在别处需要被修改,当我将value作为一个变量加入到map中去,之后修改会连同已经在map里面的value跟着变。
解决方案 »
- spring aop管理日志
- 关于水晶报表问题IReportAppFactory.openDocument(infoObject,0,java.util.Locale.US)挂起
- MAVEN2的jai-core-1.1.3.pom报错
- 解决个javascript问题就散分!
- hibernate
- 一个采用JDBC方法向MYSQL插入记录的问题
- 请问怎样限制linux服务器下apache+resin网站的cpu使用率(例如最大为5%)
- Spring/Struts/Hibernater框架会在短时间内淘汰吗?用框架的人最终都会成为框架的奴隶?欢迎大侠们进来讨论。
- IE有没有提供什么接口
- [迷惑]Java学到什么程度才适合接触EJB?
- 关于hibernate的dao层的问题
- 关于js的问题
往map里放的value单独做一个set好了,
这样你改变变量的时候map的value就不会跟着改了
Map<String, Set<String>> map = new HashMap<String, Set<String>>();
Set<String> set = new HashSet<String>();
set.add("A");
set.add("B");
// set1作为map的值,而改变set的值不会影响map的值。
Set<String> set1 = new HashSet<String>();
for (String s : set) {
set1.add(s);
}
set.add("C");
map.put("1", set1);
for (String s : map.get("1")) {
System.out.println(s);
}
谢谢,问题已经解决了,我每次需要put的时候都new一个拷贝出来,直接放拷贝就好了,虽然没有问题了,但是总觉得这个办法如果数据量很大的话会非常吃内存