一个小小的疑问关于java是值传递

不爱吃萝卜的兔子 不爱吃萝卜的兔子 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我有个小疑问,坐等高手解释:
public class ReferenceOrValueTest {

/**
* @param args
*/
public static void main(String[] args) {
Map<String,List<String>> map = new HashMap<String,List<String>> ();
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
map.put("a", list);
System.out.println("size:"+map.get("a").size());
//获取到map中的List
List<String> newList = map.get("a");
//给该List添加新的值
newList.add("3");
newList.add("4");
//如果是值传递的话,改变newList的值应该不会影响到
//map中的list的值,可是结果是改变了,为什么?
System.out.println("size:"+map.get("a").size());
}

}

...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
不爱吃萝卜的兔子
Java 51,407 成员 86,126 内容