跳到主要内容

Java HashMap clone() 方法

这里,浅拷贝(shallow copy)的含义是键和值不会被复制。相反,会复制对键/值的引用。要了解更多关于浅拷贝的信息,请访问 Java 浅拷贝

clone() 方法的语法是:

hashmap.clone()

这里,hashmapHashMap 类的一个对象。

clone() 参数

clone() 方法不接受任何参数。

clone() 返回值

  • 返回 HashMap 实例(对象)的副本

示例 1:复制 HashMap

import java.util.HashMap;

class Main {
public static void main(String[] args){

// 创建 HashMap
HashMap<String, Integer> languages = new HashMap<>();

languages.put("Java", 14);
languages.put("Python", 3);
languages.put("JavaScript", 1);
System.out.println("HashMap: " + languages);

// 创建 languages 的副本
HashMap<String, Integer> cloneLanguages = (HashMap<String, Integer>)languages.clone();
System.out.println("克隆后的 HashMap: " + cloneLanguages);
}
}

输出

HashMap: {Java=14, JavaScript=1, Python=3}
克隆后的 HashMap: {Java=14, JavaScript=1, Python=3}

在上述示例中,我们创建了一个名为 languages 的 hashmap。注意这个表达式,

(HashMap<String, Integer>)languages.clone()

这里,

  • languages.clone() - 返回对象 languages 的副本
  • (HashMap<String, Integer>) - 将 clone() 返回的 对象 转换为 String 类型键和 Integer 类型值的 hashmap(要了解更多,请访问 Java 类型转换

示例 2:打印 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("Prime Numbers: " + primeNumbers);

// 打印 clone() 的返回值
System.out.println("clone() 的返回值: " + primeNumbers.clone());
}
}

输出

Prime Numbers: {Five=5, Two=2, Three=3}
clone() 的返回值: {Five=5, Two=2, Three=3}

在上述示例中,我们创建了一个名为 primeNumbers 的 hashmap。这里,我们打印了 clone() 返回的值。

注意clone() 方法不仅限于 HashMap 类。任何实现了 Clonable 接口的类都可以使用 clone() 方法。