在这里,浅拷贝意味着键和值都不会被复制。而是复制键/值的引用。要了解有关浅拷贝的更多信息,请访问 Java浅拷贝。
clone()
方法的语法是
hashmap.clone()
clone() 参数
clone()
方法不接受任何参数。
clone()返回值
- 返回
HashMap
实例(对象)的副本
示例 1:复制HashMap
import java.util.HashMap;
class Main {
public static void main(String[] args){
// create HashMap
HashMap<String, Integer> languages = new HashMap<>();
languages.put("Java", 14);
languages.put("Python", 3);
languages.put("JavaScript", 1);
System.out.println("HashMap: " + languages);
// create copy of languages
HashMap<String, Integer> cloneLanguages = (HashMap<String, Integer>)languages.clone();
System.out.println("Cloned HashMap: " + cloneLanguages);
}
}
输出
HashMap: {Java=14, JavaScript=1, Python=3} Cloned HashMap: {Java=14, JavaScript=1, Python=3}
在上面的示例中,我们创建了一个名为languages的哈希表。请注意表达式:
(HashMap<String, Integer>)languages.clone()
这里,
languages.clone()
- 返回对象languages的副本(HashMap<String, Integer>)
- 将clone()
返回的对象转换为键为String
类型、值为Integer
类型的哈希表(要了解更多信息,请访问Java类型转换)
示例 2:打印clone()的返回值
import java.util.HashMap;
class Main {
public static void main(String[] args){
// create a hashmap
HashMap<String, Integer> primeNumbers = new HashMap<>();
primeNumbers.put("Two", 2);
primeNumbers.put("Three", 3);
primeNumbers.put("Five", 5);
System.out.println("Numbers: " + primeNumbers);
// print the return value of 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的哈希表。在这里,我们打印了clone()
返回的值。
注意:clone()
方法并非HashMap
类特有。任何实现了Clonable
接口的类都可以使用clone()
方法。
另请阅读