关于克隆(急急急)

fullish 2007-06-23 07:30:08
ArrayList l = new ArrayList();
HashMap m = new HashMap();
m.put("a", "a1");
l.add(m);

ArrayList l2 = (ArrayList)l.clone();
HashMap m2 = (HashMap)l2.get(0);
m2.put("a", "a2");
System.out.println(l);
System.out.println(l2);

l和l2里面的值是一样的啊 l.clone并没有切断和l的关系,也就是l2只是别名化了,哪位高手能告诉我如何使得m2的值变化,同时又不影响m的值,谢谢
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
luyang1016 2007-06-24
  • 打赏
  • 举报
回复
这个东西,明天到公司给你拷贝一个万能克隆的代码。

今天就忍忍吧。

早点睡觉,朋友
joejoe1991 2007-06-24
  • 打赏
  • 举报
回复
不明白 不是已经clone了么 那这两个对象里的值应该没有关系才对啊 怎么会出现改了m2 m的值也会改呢?
huojicq 2007-06-24
  • 打赏
  • 举报
回复
重写clone 把内部对象都clone一遍!
真的很小奚 2007-06-23
  • 打赏
  • 举报
回复
LZ您这只是浅CLONE需要深CLONE
qfs_v 2007-06-23
  • 打赏
  • 举报
回复
clone
fullish 2007-06-23
  • 打赏
  • 举报
回复
这个我知道 是浅层拷贝 可是我不太理解深层拷贝, 哪为仁兄给小弟写个能实现的范例好吗,谢谢

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧