`

实例180 - 高效的枚举元素映射

 
阅读更多

心法领悟180:EnumMap类的应用。

命令模式是23种常见模式之一,它是一种行为模式,可以使用EnumMap类来实现。首先将各种不同的命令保存在一个枚举类型中,再将这个枚举类型作为EnumMap的键。然后使用接口来统一命令所对应的操作,将其实现作为值存入到EnumMap中,这样就实现了命令模式。

package com.mingrisoft.enummap;

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

 

package com.mingrisoft.enummap;

import static com.mingrisoft.enummap.Weekday.MONDAY;
import static com.mingrisoft.enummap.Weekday.SATURDAY;
import static com.mingrisoft.enummap.Weekday.SUNDAY;

import java.util.EnumMap;

public class EnumMapTest {
    public static void main(String[] args) {
        EnumMap<Weekday, String> weeks = new EnumMap<Weekday, String>(Weekday.class);
        weeks.put(MONDAY, "星期一");
        weeks.put(SUNDAY, "星期日");
        System.out.println("EnumMap中的键值对个数:" + weeks.size());
        System.out.println("EnumMap中的键值对:" + weeks);
        System.out.println("EnumMap中是否包含键SATURADAY:"
                + weeks.containsKey(SATURDAY));
        System.out.println("EnumMap中是否包含值星期日:" + weeks.containsValue("星期日"));
        weeks.remove(MONDAY);
        System.out.println("EnumMap中的键值对:" + weeks);
        System.out.println("EnumMap中键MONDAY对应的值:" + weeks.get(MONDAY));
    }
}

 

EnumMap中的键值对个数:2
EnumMap中的键值对:{MONDAY=星期一, SUNDAY=星期日}
EnumMap中是否包含键SATURADAY:false
EnumMap中是否包含值星期日:true
EnumMap中的键值对:{SUNDAY=星期日}
EnumMap中键MONDAY对应的值:null

 

分享到:
评论

相关推荐

    EnumFactory:简单工厂模式,基于约定,在枚举和命名实例之间具有一对一映射

    枚举工厂 简单工厂模式,基于约定,在枚举和命名实例之间具有一对一映射

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例180 高效的枚举元素映射 229 实例181 遍历枚举接口的元素 230 实例182 简单的文件合并工具 231 8.2 泛型使用的简介 233 实例183 自定义非泛型栈结构 233 实例184 使用泛型实现栈结构 234 实例185 自定义泛型化...

    JAVA 范例大全 光盘 资源

    实例68 植物种类(运用映射的相关类) 165 实例69 不重复的随机数序列 168 实例70 读写Properties文件 170 实例71 配置Properties带附件发送邮件 175 实例72 资源国际化(Properties) 179 常见问题 读取...

    JAVA基础知识点HTML格式教程编程实例20000源代码

    实体管理器、实体监听、枚举、撷取、查找、生成原密钥 继承、列链接、锁、多对多映射、多对一映射、映射键 命名查询、本地查询、一对多映射、一对一映射、开放JPA、分页结果集合 主关键词、查询参数、结果映射、保存...

    Visual C++实效编程百例光盘源代码

     实例61 通过内存映射实现Exe程序间的数据交换   实例62 通过消息机制实现Exe程序间的数据交换  第7章 磁盘文件   实例63 获取驱动器序列号   实例64 获取磁盘空间数据   实例65 判别并定位到光驱...

    《Visual C++范例大全》随书光盘 第十章

    实例241——使用内存映射文件来共享数据 实例242——创建临时文件 实例243——使用INI文件保存程序的信息 实例244——使用剪贴板实现数据的复制和粘贴 实例245——实现拖放文件到视图窗口 实例246——实现拖放...

    VISUAL C++实效编程280例

    1.22 实例22:枚举桌面所有顶层窗口 第2章 菜单和光标 2.1 实例23:动态添加和删除菜单项 2.2 实例24:在系统菜单中添加和删除菜单项 2.3 实例25:禁用关闭按钮 2.4 实例26:启用和禁用菜单项 2.5 实例27:设置菜单...

    vc++ 开发实例源码包

    DOM应用---遍历网页中的元素 如题。 dshowplayer 媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 如题。主要的实现在CMyExcel类中。 expclass_src ...

    enumjs:JavaScript中的类型安全枚举

    此问题的大多数解决方法都涉及使用映射,其中键表示枚举常量,并且值是枚举常量的整数或字符串表示形式。 这是一个方便的解决方案,但是主要的问题是,由于值只是常规JavaScript类型,因此您实际上并没有获得任何...

    API之网络函数---整理网络函数及功能

    UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 VerFindFile 用这个函数决定一个文件应安装到哪里 VerInstallFile 用这个函数安装一个文件 VerLanguageName 这个函数能根据16位语言...

    ARM嵌入式系统软件开发实例(一)

    《ARM嵌入式系统软件开发实例(一) 周立功 北京航天航空大学出版社》(PDF) 目录第1章 ZLG/FS原理与应用 1.1 概述 1.1.1 ZLG/FS简介 1.1.2 ZLG/FS的特点 1.1.3 已实现的特性 1.1.4 暂时未实现的特性 1.2 使用...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。 -修正HtmlEditor不能编辑的BUG(feedback:TheBox)。 -修正IE下有时会出现空白页面的情况(feedback:olivia919)。 +2009-12-06 v2.1.8 -...

Global site tag (gtag.js) - Google Analytics