我有一个名为'link_occur_nodup'的二维向量,其中包含[[5,2,1,1],[2,1,1]]的数据.现在,如果我尝试做的话
Vector<Vector<Integer>> temp=(Vector<Vector<Integer>>) link_occur_nodup.clone();
temp.elementAt(0).set(1, 50);
System.out.println(temp+" "+link_occur_nodup);
Run Code Online (Sandbox Code Playgroud)
输出是:[[5,50,1,1],[2,1,1]] [[5,50,1,1],[2,1,1]]我想知道为什么值被改变在两个载体中?相反,它必须只在'临时'向量中.有人可以解释一下吗?
Lou*_*man 12
clone只做一个浅的副本:所以你得到一个新Vector的引用与原始相同的对象.这是预期的行为.
如果您想要不同的行为,您需要自己手动复制内部Vector.(这是使用clone不明智的众多原因之一.)
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |