为什么在java.util.ArrayList中不允许原始数据类型?

可能重复:
在Java集合中存储原始值?

ArrayList仅接受引用类型作为其元素,而不接受基本数据类型。 尝试这样做时会产生编译时错误。

这背后的概念是什么? 这似乎是一个限制,不是吗?

Java的所有集合类都存储它们收集的对象的内存位置。 原始值不适合相同的定义。
为了解决这个问题,JDK5及其后续版本具有自动装箱function – 其中原语被转换为适当的对象,并在从集合中添加或读取时返回。

如果查看ArrayList源代码,它将使用Object数组来存储值。 当您尝试将基元类型存储在集合中时,这就是自动装箱发生的原因之一。

因为Java只能使用类(而不是基本类型)和数组(也是基元的数组)来表示generics(在<和>之间)。

清单清单; 这也是为什么有原始类型的包装类的原因:

int – >整数

布尔值 – >布尔值

双 – >双

byte – > Byte等…

请参阅此处的解释: 在Java集合中存储原始值?