Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的Int和Double在一个数组中_Java_Arrays_Integer_Double - Fatal编程技术网

Java中的Int和Double在一个数组中

Java中的Int和Double在一个数组中,java,arrays,integer,double,Java,Arrays,Integer,Double,有没有办法把int和Double放在同一个数组中。我想要一个数组p1[],其中第一个p1[0]是int,其余的元素都是double。这可能吗?您可以拥有一个对象数组,在这种情况下,您可以将整数和双精度对象放入其中。但是,我怀疑是否有比数组更好的方法来存储数据 编辑:您当然应该按照Nikita的建议将其设置为数字数组。您可以通过创建一个对象数组来实现这一点,该数组是Integer/Double的超类,正如其他地方指出的那样 然而,我可能会通过实现一个包含整数组件和一个双精度数组的对象来强制执行类型

有没有办法把int和Double放在同一个数组中。我想要一个数组p1[],其中第一个p1[0]是int,其余的元素都是double。这可能吗?

您可以拥有一个对象数组,在这种情况下,您可以将整数和双精度对象放入其中。但是,我怀疑是否有比数组更好的方法来存储数据


编辑:您当然应该按照Nikita的建议将其设置为数字数组。

您可以通过创建一个对象数组来实现这一点,该数组是Integer/Double的超类,正如其他地方指出的那样


然而,我可能会通过实现一个包含整数组件和一个双精度数组的对象来强制执行类型安全性,并存储一个双精度数组。尽管存在额外的复杂性,但它的好处是,您将具有类型安全性,并且不必将第一个元素强制转换为整数,而将其余元素强制转换为双倍。

如果内存非常重要,您可能希望改为使用long[]。可以轻松存储int,但double需要更多的工作:

long x = Double.doubleToRawLongBits(double value); 
double value = Double.longBitsToDouble(long x). 
但最好创建一个特殊类,然后移动数组索引:

class Y {
    int x;
    double[] values;
}

实际上,为什么不一直使用double[]并强制转换第一个元素呢?为什么?对我来说,听起来更像是一个类而不是数组。