📅  最后修改于: 2023-12-03 15:16:23.112000             🧑  作者: Mango
在Java中,EnumMap是一种特殊的Map实现,它要求其key必须是枚举类型。EnumMap在内部实现上使用了数组,因此它是一个高效的实现。
EnumMap提供了equals()方法,用于判断两个EnumMap是否相等。本文将介绍EnumMap的equals()方法的使用方法和示例。
EnumMap的equals()方法的语法如下:
public boolean equals(Object o)
参数说明:
返回值:
下面是一个简单的EnumMap equals() 方法的示例,用于比较两个EnumMap是否相等:
// 定义一个枚举类型
enum Color {
RED,
GREEN,
BLUE
}
public class EnumMapExample {
public static void main(String[] args) {
// 创建两个EnumMap
EnumMap<Color, String> map1 = new EnumMap<>(Color.class);
EnumMap<Color, String> map2 = new EnumMap<>(Color.class);
// 向map1和map2中put相同的键值对
map1.put(Color.RED, "red");
map1.put(Color.GREEN, "green");
map1.put(Color.BLUE, "blue");
map2.put(Color.RED, "red");
map2.put(Color.GREEN, "green");
map2.put(Color.BLUE, "blue");
// 判断map1和map2是否相等
boolean isEqual = map1.equals(map2);
System.out.println("is map1 equals to map2? " + isEqual);
}
}
输出结果如下:
is map1 equals to map2? true
该示例中,我们创建了两个EnumMap对象map1和map2,并向它们中put相同的键值对。然后调用map1的equals()方法判断两个EnumMap是否相等,结果输出true。
注意:当两个EnumMap中key-value映射相同时,它们并不一定是同一个对象。例如,如果你使用clone()方法从原始的EnumMap中创建了一个拷贝,那么即使它们的key-value映射完全相同,它们也不是同一个对象。因此,调用equals()方法仍然会返回false。