在Java中,Map接口沒有提供深拷貝的方法,但我們可以通過手動復制每個鍵值對來實現深拷貝。以下是一個示例代碼:
import java.util.HashMap;
import java.util.Map;
public class DeepCopyMapExample {
public static void main(String[] args) {
// 創建原始Map
Map<String, String> originalMap = new HashMap<>();
originalMap.put("key1", "value1");
originalMap.put("key2", "value2");
// 創建新的Map并進行深拷貝
Map<String, String> deepCopiedMap = new HashMap<>();
for (Map.Entry<String, String> entry : originalMap.entrySet()) {
deepCopiedMap.put(entry.getKey(), entry.getValue());
}
// 修改原始Map的值
originalMap.put("key1", "newValue");
// 輸出結果
System.out.println("Original Map: " + originalMap);
System.out.println("Deep Copied Map: " + deepCopiedMap);
}
}
上述代碼中,我們首先創建了一個原始的Map對象 originalMap
,然后通過手動復制每個鍵值對的方式實現了深拷貝,將復制后的鍵值對存儲到新的Map對象 deepCopiedMap
中。最后,我們修改了原始Map的值,但是新的Map對象沒有受到影響,證明了深拷貝的實現。
輸出結果為:
Original Map: {key1=newValue, key2=value2}
Deep Copied Map: {key1=value1, key2=value2}
可以看到,原始Map的值發生了變化,但是新的Map對象的值沒有變化,說明深拷貝成功。