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

时间:2010-09-11 23:43:50

标签: java arrays integer double

有没有办法将int和Double放在同一个数组中。我想要一个数组(p1[]),其中第一个(p1[0])是一个int,其余所有元素都是双精度数。这可能吗?

3 个答案:

答案 0 :(得分:2)

您可以拥有Object个数组,在这种情况下,您可以将Integer和Double对象放入其中。但是,我怀疑存储数据的方式可能比数组更好。

编辑:当然,你应该像Nikita建议的那样使它成为一个Number阵列。

答案 1 :(得分:2)

你可以通过拥有一个Integer / Double超类的对象数组来实现这一点(如别处所指出)。

但是,我可能会通过实现具有Integer组件加上Double数组的对象来强制实现类型安全,并存储这些组件的数组。上行(尽管有额外的复杂性)是你将具有类型安全性,而不必将第一个元素转换为Integer,同时将余数转换为Double

答案 2 :(得分:1)

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

long x = Double.doubleToRawLongBits(double value); 
double value = Double.longBitsToDouble(long x). 

但也许最好创建一个特殊的类,然后移动数组索引:

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