数组是否可以包含整数和浮点数

Sam*_*uel 6 java theory arrays types

有人问我:java中的数组是否包含整数和浮点数?她从老师那里得到了这个问题.

现在我的答案是:是的,因为你可以声明一个对象数组并在其中存储整数和浮点数.

但现在我想知道这是否正确,因为从技术上讲,当你将Integer和Float对象存储在一个数组中时,它确实包含两种类型,但如果你要"询问"数组,他会告诉你他包含了对象,如果我不进行簿记或类检查,则无法判断数组中是否存在整数和浮点数.

另一方面,我仍然觉得它可能是正确的答案,因为从理论上讲,数组包含两种类型的对象.

所以我要求一个明智的观点:如果你被问到(在一次采访中,测试什么),java中的数组可以包含整数和浮点数,是或否?你会回答什么?

Dor*_*rus 15

intfloat不适合一个Object[]阵列.但是,通过自动装箱,java会将一个Float或者Integer放入数组中.

两者FloatInteger延伸Number.所以你甚至可以制作一组数字Number[]

此外,您可以将a int放入a中float[],但java会将int转换为float.反过来也是可能的,但精确度将会丧失.(编辑:即使从int-> float精度也可能丢失.float-> int可能会丢失有关值的整体大小的信息).

结论将取决于问题.对于原始数据类型,数组不能包含其他数据类型.如果使用Object数组(Integer,Float,Number),答案是肯定的.

  • 严格来说你**不能把`int`放到`float []`中.存储在`float []`中的值是**总是**`float`值.另外:从`int`转换为`float`并不总是无损. (5认同)