📅  最后修改于: 2023-12-03 14:42:14.344000             🧑  作者: Mango
clone()
方法用于创建并返回当前 HashMap 对象的浅表副本。这意味着该方法返回的新 HashMap 对象与原始 HashMap 对象共享相同的键值映射。
public Object clone()
无参数。
该方法返回当前 HashMap 对象的浅表副本。
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建 HashMap 对象
HashMap<String, String> originalMap = new HashMap<String, String>();
originalMap.put("1", "one");
originalMap.put("2", "two");
originalMap.put("3", "three");
// 创建原始对象的浅表副本
Map<String, String> clonedMap = (Map<String, String>) originalMap.clone();
// 输出原始 HashMap 对象和浅表副本
System.out.println("Original HashMap: " + originalMap);
System.out.println("Cloned HashMap: " + clonedMap);
// 更改原始 HashMap 对象中的一个值
originalMap.put("1", "ONE");
// 另一个对象的值也会更改
System.out.println("Original HashMap: " + originalMap);
System.out.println("Cloned HashMap: " + clonedMap);
// 更改浅表副本对象中的一个值
clonedMap.put("2", "TWO");
// 另一个对象的值也会更改
System.out.println("Original HashMap: " + originalMap);
System.out.println("Cloned HashMap: " + clonedMap);
}
}
输出结果如下:
Original HashMap: {1=one, 2=two, 3=three}
Cloned HashMap: {1=one, 2=two, 3=three}
Original HashMap: {1=ONE, 2=two, 3=three}
Cloned HashMap: {1=ONE, 2=two, 3=three}
Original HashMap: {1=ONE, 2=two, 3=three}
Cloned HashMap: {1=ONE, 2=TWO, 3=three}
从结果可以看出,如果更改原始 HashMap 对象或浅表副本,则另一个对象的映射值也会更改。这是因为它们共享相同的键值映射。
clone()
方法返回的是一个 Object
类型的对象,需要强制类型转换为 HashMap
对象。