Java 1.7 HashMap整数键

Java 1.7 HashMap整数键,java,collections,hashmap,integer,key,Java,Collections,Hashmap,Integer,Key,我正在使用一个HashMap集合来存储几个值对的列表 使用整数作为密钥安全吗?put和get方法的行为是相同的?是的,它是安全的Integer只是int的包装类。 我从自己的经验中知道这一点。以这种方式创建了验证码功能。(用户请求一个随机整数。my prog创建一个captcha pic,并将答案[value]和随机整数id[key]保存在hashmap中。顺便说一句,如果要创建“缓存”,请使用java的LinkedHashMap。它有一个受保护的布尔方法,名为“RemoveeLDestry(M

我正在使用一个
HashMap
集合来存储几个值对的列表


使用整数作为密钥安全吗?put和get方法的行为是相同的?

是的,它是安全的
Integer
只是
int
的包装类。
我从自己的经验中知道这一点。以这种方式创建了验证码功能。(用户请求一个随机整数。my prog创建一个captcha pic,并将答案[value]和随机整数id[key]保存在hashmap中。顺便说一句,如果要创建“缓存”,请使用java的
LinkedHashMap
。它有一个受保护的布尔方法,名为“
RemoveeLDestry(Map.Entry eldest)
”在put事件期间调用。如果使用“
return size()>MAX_size;
”覆盖它,则如果提供的条件返回
true
,它将删除最早的条目(或基于最早访问的条目-构造函数中有一个选项)。希望这有帮助/

对。为什么不呢?如果我把值直接和整数或整数放在一起。intValue是一样的?在大多数情况下。如果你关心的是
Integer
vs
int
,那就不用担心了。除了
null
之外,由于自动装箱,还可以使用任何一种形式。然而,自动拳击确实会影响性能。你的问题没有获得票数下降,而是接近票数。这是合理的,因为不清楚为什么您认为
Integer
在这里不安全
Map#put(K键,V值)
expect键类型由泛型描述,在您的例子中是
Ineger
。由于泛型仅与对象一起工作(不能将其设置为基本类型,如
int
),因此基本类型
int
的传递参数将自动装箱(包装/升级)为整数,因为这是此参数的方法所需的类型。我们不知道你不知道什么,所以你需要解释是什么让你认为这可能是不安全的。