Java 在枚举映射中存储基元值

Java 在枚举映射中存储基元值,java,enums,enum-map,Java,Enums,Enum Map,为什么我不能像这样创建EnumMap: EnumMap<FunkyTrolls, int> amountMap; EnumMap-amountMap; 我想计算并保存每种类型的巨魔的数量。做这件事的好方法是什么?只需使用Integer。泛型只适用于对象,而不适用于基本类型,但Java现在有了自动装箱和-取消装箱功能 这应该起作用: Map<FunkyTrolls, Integer> amountMap = new EnumMap<FunkyTrolls, Int

为什么我不能像这样创建
EnumMap

EnumMap<FunkyTrolls, int> amountMap;
EnumMap-amountMap;

我想计算并保存每种类型的巨魔的数量。做这件事的好方法是什么?

只需使用
Integer
。泛型只适用于对象,而不适用于基本类型,但Java现在有了自动装箱和-取消装箱功能

这应该起作用:

Map<FunkyTrolls, Integer> amountMap = new EnumMap<FunkyTrolls, Integer>();
amountMap.put(FunkyTrolls.VERY_FUNKY_TROLL, 100);
Map amountMap=new EnumMap();
amountMap.put(FunkyTrolls.VERY_FUNKY_TROLL,100);

只需使用
整数
。泛型只适用于对象,而不适用于基本类型,但Java现在有了自动装箱和-取消装箱功能

这应该起作用:

Map<FunkyTrolls, Integer> amountMap = new EnumMap<FunkyTrolls, Integer>();
amountMap.put(FunkyTrolls.VERY_FUNKY_TROLL, 100);
Map amountMap=new EnumMap();
amountMap.put(FunkyTrolls.VERY_FUNKY_TROLL,100);

通过使用您已经使用的枚举映射,但使用整数?您最好让每个枚举生成一个小的
int
,然后使用数组而不是映射。通过使用您已经使用的枚举映射,但使用整数?您最好让每个枚举生成一个小的
int
,然后使用数组而不是映射。那么Integer是原始int的包装类?什么是自动装箱?
Integer
int
的对象变量。自动装箱是由编译器将int“转换”为整数对象实例(因此您似乎存储了
int
,但它被转换为
Integer
)。请注意,
null
可能存储在
Map
中,但是
int
显然不能为null(因为它根本不是对象引用,只是一个值)。我会让你猜自动拆箱:)谢谢。虽然我只是注意到我想做++的金额(而在时髦的巨魔循环)。也许映射毕竟不太适合于此……这取决于,如果您的代码真的运行得非常快,那么您可能会遇到麻烦。否则你只需循环键,获取值,增加值,然后将其放回。循环键?我能用amountMap.put(非常时髦的巨魔,(amountMap.get(非常时髦的巨魔)+1)吗?如果确保这个时髦的巨魔已经有了一个条目,那么Integer是原始int的包装类吗?什么是自动装箱?
Integer
int
的对象变量。自动装箱是由编译器将int“转换”为整数对象实例(因此您似乎存储了
int
,但它被转换为
Integer
)。请注意,
null
可能存储在
Map
中,但是
int
显然不能为null(因为它根本不是对象引用,只是一个值)。我会让你猜自动拆箱:)谢谢。虽然我只是注意到我想做++的金额(而在时髦的巨魔循环)。也许映射毕竟不太适合于此……这取决于,如果您的代码真的运行得非常快,那么您可能会遇到麻烦。否则你只需循环键,获取值,增加值,然后将其放回。循环键?我能用amountMap.put(非常时髦的巨魔,(amountMap.get(非常时髦的巨魔)+1)吗?如果你确定这个古怪的巨魔已经有了一个入口。