Java HashMap只能存储对象键和值
HashMap不接受基元类型作为键和值,但我们仍然可以按如下方式轻松存储基元类型的值:Java HashMap只能存储对象键和值,java,hashmap,Java,Hashmap,HashMap不接受基元类型作为键和值,但我们仍然可以按如下方式轻松存储基元类型的值: HashMap h = new HashMap(); h.put(1,1); 这是怎么可能的?当您将原语存储在HashMap或任何集合中时,它们会被装箱到引用类型中。int被装箱为整数。这是因为1被自动装箱为整数,实际上与以下内容相同:Integer.valueOf1。查找有关的更多信息 int被装箱为整数 long被装箱成long 双人间是用盒装成双人间的 浮动被装箱以浮动 布尔值被装箱为布尔值 在您的
HashMap h = new HashMap();
h.put(1,1);
这是怎么可能的?当您将原语存储在HashMap或任何集合中时,它们会被装箱到引用类型中。int被装箱为整数。这是因为1被自动装箱为整数,实际上与以下内容相同:Integer.valueOf1。查找有关的更多信息 int被装箱为整数 long被装箱成long 双人间是用盒装成双人间的 浮动被装箱以浮动 布尔值被装箱为布尔值 在您的示例中,您使用的是地图的原始类型。您声明的映射对象最有可能声明如下:
Map<Integer, Integer> h = new HashMap<>();
h.put(1, 1);
阅读本文中有关原始类型的更多信息。原语由编译器自动装箱并作为包装器对象插入。因此,在您的情况下,它将自动装箱为整数对象。有关详细信息,请参阅。每个基元类型都有相应的包装器对象,其中一些类似:
primitive - Object
byte - Byte
char - Character
short - Short
int - Integer
long - Long
double - Double
float - Float
boolean - Boolean
正如任何Java程序员所知道的,您不能放置int或其他原语
将值放入集合中
集合只能保存对象引用,
因此,必须将原始值装箱到适当的包装器类中
对于int,它是整数
当你把物体拿出来的时候
在集合中,你得到你输入的整数;如果你需要一个
int,则必须使用intValue方法取消对整数的装箱。所有这些
装箱和拆箱是一件痛苦的事,会把代码弄得乱七八糟
自动装箱和取消装箱功能使流程自动化,消除了
痛苦和混乱
被否决的回答方式是不提问。我们可以通过在几秒钟内回答来鼓励这种类型的问题吗?了解泛型和接口。您的代码应该是Map h=newhashmap;是的,java通过使用自动装箱和in-boxing将int转换为整数,那么您希望得到什么呢?您的问题非常不清楚,也可以使用更好的格式。请阅读并编辑您的问题以澄清它。