哈希图中的 clone() 方法

clone() method in hashmap

在 hashmap 中使用 clone():

HashMap<Integer, String> map = new HashMap<>();

map.put(1, "Raj");
map.put(3, "Kumar");
map.put(2, "Ram");

HashMap map1 = (HashMap) map.clone();

map1.put(7, "Kavin");

System.out.println("Map1: "+map1);
System.out.println("Map: "+map);

这将给出输出,
Map1: {1=Raj, 2=Ram, 3=Kumar, 7=Kavin}
地图:{1=Raj,2=Ram,3=Kumar}

但是如果我尝试在 jdk8 中 运行,它会抛出编译错误。


注意:HelloWorld.java 使用未经检查或不安全的操作。
注意:使用 -Xlint 重新编译:未选中以获取详细信息。

程序 2:

  HashMap<String, Integer> map = new HashMap<String, Integer>();
    map.put("Java", 8);
    map.put("Csharp", 5);
    Map<String, Integer> mapClone = (Map<String, Integer>) 
            Collections.checkedMap((Map<String, Integer>)map.clone(),  String.class, Integer.class);

但是如果我尝试在 jdk8 中 运行,它会抛出编译错误。


注意:HelloWorld.java 使用未经检查或不安全的操作。
注意:使用 -Xlint 重新编译:未选中以获取详细信息。

为什么??...

Note: HelloWorld.java uses unchecked or unsafe operations.

Note:Recompile with -Xlint:unchecked for details.

这些只是警告,不是 Compilation Error

These warning simply means that the compiler can't check that you're using the collection in a type-safe way, using generics.