📜  Java.util.EnumMap类(1)

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

Java.util.EnumMap类

Java.util.EnumMap类是Java集合框架中的一种实现Map接口的特殊映射实现,它仅允许将枚举类型用作其键。

特点
  • EnumMap中的getKey()和put()方法均为O(1)时间复杂度,因此效率较高。
  • EnumMap是有序的,按照枚举类型的声明顺序排序。
  • EnumMap没有实现java.util.Map接口的可修改映射视图方法,因此不支持clear(), remove()等操作。
  • EnumMap不接受null值,如果插入null值,则会抛出NullPointerException异常。
构造方法
  1. 空构造方法
public EnumMap(Class<K> keyType)
  1. 指定枚举类型的构造方法
public EnumMap(EnumMap<K, ? extends V> m)
public EnumMap(Map<K, ? extends V> m)
基本方法
  • put()方法:将键值对放入EnumMap中
public V put(K key, V value)
  • get()方法:获取指定键对应的值
public V get(Object key)
  • containsKey()方法:判断指定键是否存在于集合中
public boolean containsKey(Object key)
  • size()方法:获取映射中键值对的数量
public int size()
  • values()方法:获取当前映射中的值的集合
public Collection<V> values()
使用示例
enum Week {
    Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}

public static void main(String[] args) {
    EnumMap<Week, String> map = new EnumMap<>(Week.class);
    map.put(Week.Monday, "星期一");
    map.put(Week.Tuesday, "星期二");
    map.put(Week.Wednesday, "星期三");
    map.put(Week.Thursday, "星期四");
    map.put(Week.Friday, "星期五");
    map.put(Week.Saturday, "星期六");
    map.put(Week.Sunday, "星期天");
    System.out.println(map.get(Week.Monday));
    System.out.println(map.containsKey(Week.Monday));
    System.out.println(map.containsValue("星期日"));
    System.out.println(map.size());
    System.out.println(map.values());
}

以上代码输出结果为:

星期一
true
false
7
[星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期天]