有没有办法将int和Double放在同一个数组中。我想要一个数组(p1[]
),其中第一个(p1[0]
)是一个int,其余所有元素都是双精度数。这可能吗?
答案 0 :(得分:2)
您可以拥有Object
个数组,在这种情况下,您可以将Integer和Double对象放入其中。但是,我怀疑存储数据的方式可能比数组更好。
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;
}