我遇到了一些关于哈希表的浅拷贝和深拷贝的文章/解释,我读的越多,我就越困惑。
Hashtable ht = new Hashtable();
ht.Add("1", "hello");
Hashtable ht2 = new Hashtable();
ht2 = ht; // case1: is this shallow copy?
ht2["1"] = "H2";
Hashtable ht3 = new Hashtable(ht); // case2: is this shallow copy?
ht3["1"] = "H3";
Hashtable ht4 = new Hashtable();
ht4 = (Hashtable)ht.Clone(); // case3: is this shallow copy?
ht4["1"] = "H4";
- 案例1:结果,ht内容变化与ht2相同。
- Case2:结果,ht内容与ht3不同。
- Case3:结果,ht内容与ht4不同。
如果Case2和Case3是浅拷贝,结果不应该和Case1一样吗?
List、ArrayList 等也会发生这种情况吗?