枚举类型(Enum)在Java中也可以作为Map的键。枚举类型具有固定的值集合,可以用于表示一组常量。由于枚举类型的值是有限的,并且在编译时已知,因此非常适合作为键。 下面是一个使用枚举类型作为键的示例: enumDay{MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY}Map<Day,String>map=newHashMap<>();map.put(...
枚举类型:Java中的枚举类型(enum)也可以作为Map的键。 使用原始类型的包装类作为Map的键 基本类型(如int、double等)不能直接作为Map的键,但它们的包装类可以。例如: importjava.util.HashMap;importjava.util.Map;publicclassExample{publicstaticvoidmain(String[]args){Map<Integer,String>map=newHashMap<>();ma...
HashMap通过计算Key的hashCode(),直接定位到Value在内部数组的索引,所以效率很高。 Key是枚举类型的Map:EnumMap 如果Key是enum类型,那么就可以使用Java集合库提供的一种EnumMap,它在内部以一种紧凑的数组存储Value,并且根据enum类型的Key直接定位到内部数组索引,且不需要计算hashCode(),效率高且没有空间浪费。 例子 假...
EnumMap是一个非常有用的类,在Java编程中经常被使用。它被设计用于必须使用enum类型作为键的情况,因为它利用enum类型本身的特殊性质,从而提供了性能优于HashMap的实现方式。 二、特点 EnumMap是一个非常高效的Map实现方式。它与HashMap相比,具有以下一些特点: 1. EnumMap使用的内存开销非常小,因为它只记录枚举常量的...
EnumMap 是 Java 集合框架中的一种特殊 Map 实现,它使用枚举类型作为键。它具有以下几个特性:高效性:EnumMap 基于数组实现,因此在性能和内存占用方面都非常高效。相比于 HashMap,它避免了哈希表的开销。类型安全:EnumMap 要求键必须是某个枚举类型,编译器会检查类型的正确性,避免了键类型的错误。有序性:...
一、枚举简介: 为什么要用枚举: 枚举是Java1.5出来之后新增的类型,它可以用来定义一组取值范围固定的的变量。 在枚举没有出来之前,要定义这样的变量,往往是通过定义一个接口,将不同的变量 使用不同的整数赋值。但是这样的却有着很明显的缺点: 1.不能保证其定义数值的合法性; ...
Java:Map(三)——EnumMap:Key是枚举类型 Java:Map(三)——EnumMap:Key是枚举类型 HashMap通过计算Key的hashCode(),直接定位到Value在内部数组的索引,所以效率很⾼。Key是枚举类型的Map:EnumMap 如果Key是enum类型,那么就可以使⽤Java集合库提供的⼀种EnumMap,它在内部以⼀种紧凑的数组存储Value,...
在Java 中,Map 是我们常用的数据结构之一,提供了键值对的存储机制。而当我们希望使用枚举(Enum)作为键来管理键值对时,EnumMap 是一个更为高效的选择。相比于 HashMap 或TreeMap,EnumMap 有着更优的性能和内存效率。 在这篇博客中,我们将详细介绍 EnumMap,分析它的优势,并通过示例代码展示它的使用方法。 什么是...
接下来,我们创建一个Java方法,该方法将接收枚举的Class对象作为参数,并返回一个Map,其中键是枚举的名称(String类型),值是枚举实例(Enum<?>类型)。 java import java.util.HashMap; import java.util.Map; public class EnumToMapConverter { public static <T extends Enum<T>> Map<...
EnumMap是枚举的专属map,效率比通常的HashMap更高。EnumMap只能接收同一枚举类型的实例作为键值且不能为null,通过ordinal方法(声明枚举对象的顺序的索引)获取枚举key对应的数组下标。在使用上EnumMap和HashMap区别不大,只是key全部为枚举类型的实例,看下get方法:public V get(Object key) { // 保证key是枚...