小弟想问一下,假设我有两个变量,他们的变量名分别是key, value
当我用map.put(key, value)方法加入这对键值的时候,可不可以仅将value的值加入map中,而不加入value这个变量?因为这个value变量在别处需要被修改,当我将value作为一个变量加入到map中去,之后修改会连同已经在map里面的value跟着变。

解决方案 »

  1.   

    补充一下,我的value类型是set<string>
      

  2.   


    往map里放的value单独做一个set好了,
    这样你改变变量的时候map的value就不会跟着改了
      

  3.   


    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);
    }
      

  4.   


    谢谢,问题已经解决了,我每次需要put的时候都new一个拷贝出来,直接放拷贝就好了,虽然没有问题了,但是总觉得这个办法如果数据量很大的话会非常吃内存