我定义了两个Map对象a和b,b里面已经有数据了,我用a=b把b里面的数据赋值给了a,然后调用b.clear()清空了b,为什么a里面的数据没有了?怎么回事呢?

解决方案 »

  1.   

    a=b只是把b的引用赋给a,a跟b么得区别,都是指向同一个对象
      

  2.   

    引用传递---对象作为参数,详见
    http://www.blogjava.net/jiafang83/archive/2007/10/23/155412.html
      

  3.   

     HashMap<String, String> map_a = new HashMap<String, String>();
            HashMap<String, String> map_b = new HashMap<String, String>();
           
           map_a.put("a", "1");
           map_a.put("b","2");
           
           map_b = (HashMap<String, String>) map_a.clone();
           
           System.out.println("map_a = " + map_a.toString());
           System.out.println("map_b= " + map_b.toString());
           System.out.println("------------------------");
           map_a.clear();
           System.out.println("map_a = " + map_a.toString());
           System.out.println("map_b= " + map_b.toString());