心法领悟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
相关推荐
本文将基于"实例179 - 高效的枚举元素组合"这一主题,深入探讨如何高效地处理枚举类型及其组合。我们将不涉及具体的源代码实现,而是侧重于理论知识和最佳实践。 首先,枚举(Enumeration)是一种在编程语言中表示...
### Hibernate枚举映射方式 #### 1. `@Enumerated` 注解 Hibernate通过`@Enumerated`注解来处理枚举映射。这个注解有两个可选的枚举值:`EnumType.ORDINAL`和`EnumType.STRING`。 - `EnumType.ORDINAL`:默认方式...
- 枚举与映射和集合 - 向枚举添加方法 - 实现接口与枚举 - 定义值特定的类体 - 手动定义枚举 - 扩展枚举 ### 3. 自动装箱和拆箱(Autoboxing and Unboxing) 自动装箱和拆箱是Java 1.5中为了简化基本数据类型与...
- 枚举映射:将枚举值与特定的值(如字符串、整数)关联,方便通过不同形式的输入来查找对应的枚举值。 - 静态工厂方法:通过静态工厂方法而非构造函数创建枚举实例,可以增加额外的逻辑检查或行为。 4. **枚举的...
7. **字符映射表**:为了高效地进行判断,可以构建或使用已有的汉字映射表,将GBK编码映射到相应的汉字,从而快速确定某个编码是否为汉字。 8. **字符串操作**:在易语言中,会用到一些字符串操作函数,如“取字节...
- **集合和数组映射**:Orika支持List、Set、Array等类型的映射,会自动处理其中每个元素的映射。 - **深拷贝与浅拷贝**:默认情况下,Orika执行的是深拷贝,即创建新对象并复制所有层级的属性。可以通过配置进行浅...
- 枚举映射:将字符串或整数映射到枚举类型。 - 集合映射:处理集合类型数据的映射。 - Map-backed属性映射:处理Map类型数据的映射。 - 索引映射:根据索引关系进行映射。 - 深层映射:递归映射对象中的所有属性。 ...
- 映射枚举类型 - 指定字段映射位置 - 使用`@Lob`注解 - 存储CLOB/BLOB类型数据 - 自定义数据类型 - 使用Hibernate提供的类型 #### 四、ID生成策略 - **项目:hibernate_0400_ID** - 使用XML定义ID生成策略...
多对一映射与一对多相反,通常用于实体类中引用另一个实体类的单个实例。使用`@ManyToOne`注解或XML中的`many-to-one`元素来实现。 **六、多对多(Many-to-Many)映射** 多对多关系需要通过中间表来实现,...
本课程"05_传智播客JPA详解_日期_枚举等字段类型的JPA映射"深入讲解了JPA在处理特定字段类型,如日期和枚举时的映射方法。以下是关于JPA和这些特定字段类型映射的详细知识: 1. **JPA基础**: JPA通过提供API和...
- **根元素**:`hibernate-mapping` 元素是映射文件的根元素。 - **类映射**:`class` 元素用于映射实体类到数据库表。 - **主键映射**:`id` 元素定义实体类的主键。 - **生成策略**:支持多种主键生成策略,如 `...
`EnumMap`则是一种以枚举为键的映射表,性能优于普通`HashMap`。 总之,深入理解并熟练运用Java的`Enum`枚举可以提升代码的可读性、安全性和效率。通过学习提供的资源,开发者将能更好地掌握枚举在各种场景下的应用...
- 当数据库中的字符串值发生变化时,要确保这些值仍然能正确映射到枚举的实例。 - 如果枚举值的数量很大,考虑是否真的需要存储为字符串,因为这可能影响查询性能。 总之,“nh枚举保存为字符”涉及的是在...
- 存储枚举类型的所有实例。 - 支持高效的集合运算。 6. **LinkedHashSet** - 继承自HashSet,但保持元素的插入顺序。 - 在保持HashSet特性的基础上,还能够维护元素的插入顺序。 7. **PriorityQueue** - ...
枚举中的每个元素都是该枚举类型的对象实例,并且具有以下特点: 1. **不可变性**:枚举中的元素是 `final` 和 `public` 的,这意味着它们一旦被创建就无法被修改。 2. **唯一性**:每个枚举常量都是该枚举类型的...
枚举类型在Java中被引入,主要用于解决常量集合并提供一种强类型的安全性,防止了无意间创建新的实例或修改枚举常量。这篇博客将深入探讨Java枚举的特性和使用方法,包括`EnumSet`和`EnumMap`这两个与枚举相关的数据...
枚举工厂 简单工厂模式,基于约定,在枚举和命名实例之间具有一对一映射
哈希表(Hashtable)是Java中的一个核心数据结构,它基于键值对(key-value pair)的概念,提供了高效的存储和查找功能。在Java标准库中,`java.util.Hashtable`类实现了可存储任意对象的键值对容器。这个类自Java ...
`EnumSet`是专为枚举设计的高效集合,而`EnumMap`则是一个以枚举类型为键的映射表。 在枚举类型中,还可以定义抽象方法,所有枚举常量必须实现这些方法。这种模式被称为"枚举伴生对象",可以用来为每个枚举常量提供...