📜  Java中的 EnumMap containsValue(value) 方法(1)

📅  最后修改于: 2023-12-03 15:01:53.154000             🧑  作者: Mango

Java中的 EnumMap containsValue(value) 方法

EnumMap 是一种特殊的 Map 类型,它的键值必须是枚举类型。EnumMap 内部维护了一个由枚举常量作为索引的数组,因此它比普通的 HashMap 在性能上有优势。在 EnumMap 中,containsValue(value) 方法可以用来判断是否存在某个值。

方法介绍
public boolean containsValue(Object value)

该方法用于测试此映射是否将一个或多个键映射到指定值。它会遍历 EnumMap 中的所有值,直到找到该值并返回 true。如果遍历完所有值都没有找到该值,则返回 false。需要注意的是,value 参数的类型必须和 EnumMap 的值类型相同。

示例代码

下面的示例演示了如何使用 EnumMap 的 containsValue(value) 方法:

enum Weekday {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

public class EnumMapExample {
    public static void main(String[] args) {
        EnumMap<Weekday, String> enumMap = new EnumMap<>(Weekday.class);
        enumMap.put(Weekday.MONDAY, "星期一");
        enumMap.put(Weekday.TUESDAY, "星期二");
        enumMap.put(Weekday.WEDNESDAY, "星期三");
        enumMap.put(Weekday.THURSDAY, "星期四");
        enumMap.put(Weekday.FRIDAY, "星期五");

        System.out.println(enumMap.containsValue("星期一")); // true
        System.out.println(enumMap.containsValue("星期六")); // false
    }
}

在这个示例中,我们定义了一个 Weekday 枚举类型,并创建了一个 EnumMap 对象。我们向其添加了一些键值对,并使用 containsValue(value) 方法来检查是否存在某个值。在这个例子中,我们先检查是否存在 "星期一" 这个值,可以看到它返回了 true。然后我们检查是否存在 "星期六" 这个值,由于不存在,它返回了 false。

注意事项
  • value 参数的类型必须和 EnumMap 的值类型相同,否则会编译失败。
  • 如果值类型是基本数据类型,那么在调用 containsValue(value) 方法时,value 参数必须是相应的包装类,例如 Integer、Double 等。
  • EnumMap 是一种有序的 Map 类型,枚举常量在数组中的顺序与定义时的顺序一致。因此,在 EnumMap 中遍历键值时,遍历的顺序也与定义时的顺序一致。