Java中的HashMap clone()方法
让我们清楚地搞清楚在java中的浅拷贝和深拷贝的基本概念。浅拷贝更快。 但是,它是“懒惰的”,因为它处理指针和引用。 而不是创建指针指向的特定数据的现代副本,它仅仅复制指针的值。 因此,第一项和副本都将具有引用相同基础数据的指针。 另一方面,深拷贝实际上复制了基础数据。 它不会在第一次和副本之间共享。
java.util.HashMap.clone()方法位于java.util包中,通常用于返回所提到的哈希映射的浅拷贝。 它只是创建地图的副本。

语法:
Hash_Map.clone()
参数: 该方法不带任何参数。
返回值: 该方法只返回HashMap的副本。
示例1:
// Java程序通过将字符串值映射到整数键来说明clone()方法
// 导入实用程序类
import java.util.*;
// 主要类
public class GFG {
// 主要驱动程序方法
public static void main(String[] args)
{
// 创建一个空HashMap
HashMap<Integer, String> hash_map
= new HashMap<Integer, String>();
// 使用put()方法将字符串值映射到整数键
// 传递自定义输入值作为参数
hash_map.put(10, "Geeks");
hash_map.put(15, "4");
hash_map.put(20, "Geeks");
hash_map.put(25, "Welcomes");
hash_map.put(30, "You");
// 打印和显示HashMap
System.out.println("Initial Mappings are: "
+ hash_map);
// 使用clone()方法打印和显示克隆的HashMap
System.out.println("The cloned map look like this: "
+ hash_map.clone());
}
}
输出:
Initial Mappings are: {20=Geeks, 25=Welcomes, 10=Geeks, 30=You, 15=4}
The cloned map look like this: {25=Welcomes, 10=Geeks, 20=Geeks, 30=You, 15=4}
示例2:
// Java代码通过将整数值映射到字符串键来说明克隆()方法
// 导入实用程序类
import java.util.*;
// 主要类
public class GFG {
// 主要驱动程序方法
public static void main(String[] args)
{
// 创建一个空HashMap
// 声明整数和字符串类型的对象
HashMap<String, Integer> hash_map
= new HashMap<String, Integer>();
// 使用put()方法将int值映射到字符串键
hash_map.put("Geeks", 10);
hash_map.put("4", 15);
hash_map.put("Geeks", 20);
hash_map.put("Welcomes",25);
hash_map.put("You", 30);
// 打印和显示HashMap
System.out.println("Initial Mappings are: "
+ hash_map);
//使用clone()方法打印和显示克隆的HashMap
System.out.println("The cloned map look like this: "
+ hash_map.clone());
}
}
输出:
Initial Mappings are: {4=15, Geeks=20, You=30, Welcomes=25}
The cloned map look like this: {Geeks=20, 4=15, You=30, Welcomes=25}
注意:
- 相同的操作可以使用各种类型的映射进行,在不同的数据类型的变化和组合中进行。
- clone()方法执行浅复制。 但是在这里,原始哈希图中的值和克隆哈希图中的值不会互相影响,因为使用了原始数据类型。
极客教程