溫馨提示×

java map深拷貝怎么使用

小億
269
2023-10-28 03:56:36
欄目: 編程語言

在Java中,Map接口沒有提供深拷貝的方法,但我們可以通過手動復(fù)制每個鍵值對來實現(xiàn)深拷貝。以下是一個示例代碼:

import java.util.HashMap;
import java.util.Map;

public class DeepCopyMapExample {
    public static void main(String[] args) {
        // 創(chuàng)建原始Map
        Map<String, String> originalMap = new HashMap<>();
        originalMap.put("key1", "value1");
        originalMap.put("key2", "value2");

        // 創(chuàng)建新的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");

        // 輸出結(jié)果
        System.out.println("Original Map: " + originalMap);
        System.out.println("Deep Copied Map: " + deepCopiedMap);
    }
}

上述代碼中,我們首先創(chuàng)建了一個原始的Map對象 originalMap,然后通過手動復(fù)制每個鍵值對的方式實現(xiàn)了深拷貝,將復(fù)制后的鍵值對存儲到新的Map對象 deepCopiedMap 中。最后,我們修改了原始Map的值,但是新的Map對象沒有受到影響,證明了深拷貝的實現(xiàn)。

輸出結(jié)果為:

Original Map: {key1=newValue, key2=value2}
Deep Copied Map: {key1=value1, key2=value2}

可以看到,原始Map的值發(fā)生了變化,但是新的Map對象的值沒有變化,說明深拷貝成功。

0