Java中的EnumMap类与示例

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)
  •   Java 集合框架

    EnumMap的是实施专业化的Map接口的枚举类型。
    它扩展了AbstractMap并在Java中实现了Map接口。它是一个泛型类,声明为:
    语法:

    public class EnumMap<K extends Enum<K>,V>
    K: specifies the keys
    V: specifies values

    K必须扩展Enum,它强制要求键必须是指定的枚举类型。

    重要的一点:

    • EnumMap类是Java Collections Framework的成员,并未同步。
    • EnumMap是有序集合,它们按照键的自然顺序进行维护(键的自然顺序表示enum常量在枚举类型中声明的顺序)
    • 这是一个高性能的地图实现,比HashMap快得多。
    • 每个EnumMap实例的所有键必须是单枚枚举类型的键。
    • EnumMap不允许空键并抛出NullPointerException,同时允许空值。

    EnumMap的示例

    // Java program to illustrate working of EnumMap and
    // its functions.
    import java.util.EnumMap;
    
    public class Example
    {
        public enum GFG
        {
            CODE, CONTRIBUTE, QUIZ, MCQ;
        }
    
        public static void main(String args[]) 
        {    
            // Java EnumMap Example 1: creating EnumMap in java with key 
            //as enum type STATE
            EnumMap&amp;lt;GFG, String&amp;gt; gfgMap = new EnumMap&amp;lt;GFG, String&amp;gt;(GFG.class);
    
            // Java EnumMap Example 2:
            // putting values inside EnumMap in Java
            // we are inserting Enum keys on different order than their natural order
            gfgMap.put(GFG.CODE, "Start Coding with gfg");
            gfgMap.put(GFG.CONTRIBUTE, "Contribute for others");
            gfgMap.put(GFG.QUIZ, "Practice Quizes");
            gfgMap.put(GFG.MCQ, "Test Speed with Mcqs");
            
            // printing size of EnumMap in java
            System.out.println("Size of EnumMap in java: " + gfgMap.size());
         
            // printing Java EnumMap , should print EnumMap in natural order
            // of enum keys (order on which they are declared)
            System.out.println("EnumMap: " + gfgMap);
         
            // retrieving value from EnumMap in java
            System.out.println("Key : " + GFG.CODE +" Value: " 
                                + gfgMap.get(GFG.CODE));
         
            // checking if EnumMap contains a particular key
            System.out.println("Does gfgMap has :" + GFG.CONTRIBUTE + " : "
                                +  gfgMap.containsKey(GFG.CONTRIBUTE));
         
            // checking if EnumMap contains a particular value
            System.out.println("Does gfgMap has :" + GFG.QUIZ + " : " 
                                + gfgMap.containsValue("Practice Quizes"));
            System.out.println("Does gfgMap has :" + GFG.QUIZ + " : " 
                                + gfgMap.containsValue(null));
        }
    }
    

    输出:

    Size of EnumMap in java: 4
    EnumMap: {CODE=Start Coding with gfg, CONTRIBUTE=Contribute for others, QUIZ=Practice Quizes
    ,MCQ=Test Speed with Mcqs}
    Key : CODE Value: Start Coding with gfg
    Does gfgMap has :CONTRIBUTE : true
    Does gfgMap has :QUIZ : true
    Does gfgMap has :QUIZ : false

    ENUMMAP方法

  •   Java 集合框架
  •   本文标题:Java中的EnumMap类与示例 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/4648.html
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注