clone() 方法用于复制一份 hashMap,属于浅拷贝。
拓展:
浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存, 所以如果其中一个对象改变了这个地址,就会影响到另一个对象。。
浅拷贝对应的就是深拷贝,深拷贝是将一个对象从内存中完整的拷贝一份出来,从堆内存中开辟一个新的区域存放新对象,且修改新对象不会影响原对象。
clone() 方法的语法为:
hashmap.clone()
注:hashmap 是 HashMap 类的一个对象。
参数说明:
- 无
返回值
返回HashMap实例(对象)的副本。
实例
以下实例演示了 clone() 方法的使用:
实例
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<Integer, String> sites = new HashMap<>();
sites.put(1, "Google");
sites.put(2, "Runoob");
sites.put(3, "Taobao");
System.out.println("HashMap: " + sites);
// 复制 sites
HashMap<Integer, String> cloneSites = (HashMap<Integer, String>)sites.clone();
System.out.println("Cloned HashMap: " + cloneSites);
}
}
class Main {
public static void main(String[] args) {
HashMap<Integer, String> sites = new HashMap<>();
sites.put(1, "Google");
sites.put(2, "Runoob");
sites.put(3, "Taobao");
System.out.println("HashMap: " + sites);
// 复制 sites
HashMap<Integer, String> cloneSites = (HashMap<Integer, String>)sites.clone();
System.out.println("Cloned HashMap: " + cloneSites);
}
}
执行以上程序输出结果为:
HashMap: {1=Google, 2=Runoob, 3=Taobao}Cloned HashMap: {1=Google, 2=Runoob, 3=Taobao}
在以上实例中,我们创建了一个名为 sites 的 HashMap,代码后面使用了 clone() 方法来拷贝一份 sites 副本。
注意表达式:
(HashMap<Integer, String>)sites.clone();
- sites.clone() - 返回复制的 sites 对象
- (HashMap<Integer, String>) 将返回的对象转换为一个 HashMap 并且它的键值 key 为 Integer 类型,values 为 String 类型。
clone() 方法的返回值:
实例
import java.util.HashMap;
class Main {
public static void main(String[] args){
// 创建一个 hashmap
HashMap<String, Integer> primeNumbers = new HashMap<>();
primeNumbers.put("Two", 2);
primeNumbers.put("Three", 3);
primeNumbers.put("Five", 5);
System.out.println("Numbers: " + primeNumbers);
// 输出clone()方法的返回值
System.out.println("Return value of clone(): " + primeNumbers.clone());
}
}
class Main {
public static void main(String[] args){
// 创建一个 hashmap
HashMap<String, Integer> primeNumbers = new HashMap<>();
primeNumbers.put("Two", 2);
primeNumbers.put("Three", 3);
primeNumbers.put("Five", 5);
System.out.println("Numbers: " + primeNumbers);
// 输出clone()方法的返回值
System.out.println("Return value of clone(): " + primeNumbers.clone());
}
}
执行以上程序输出结果为:
Prime Numbers: {Five=5, Two=2, Three=3}Return value of clone(): {Five=5, Two=2, Three=3}
在以上实例中,我们创建了一个名为 primeNumbers 的 HashMap,输出结果是 clone() 方法的返回值。
注意:clone() 方法并不是特定于 HashMap 类的,任何继承 Clonable 接口的类都可以使用 clone() 方法。