【发布时间】:2011-04-11 05:23:32
【问题描述】:
有没有办法将一个 int 和一个 Double 放在同一个数组中。我想要一个数组 (p1[]),其中第一个 (p1[0]) 是一个 int,所有其余元素都是双精度数。这可能吗?
【问题讨论】:
-
为什么?对我来说听起来更像是一个类而不是一个数组。
标签: java arrays integer double
有没有办法将一个 int 和一个 Double 放在同一个数组中。我想要一个数组 (p1[]),其中第一个 (p1[0]) 是一个 int,所有其余元素都是双精度数。这可能吗?
【问题讨论】:
标签: java arrays integer double
您可以有一个Objects 数组,在这种情况下,您可以在其中放入 Integer 和 Double 对象。但是,我怀疑可能有比数组更好的数据存储方式。
编辑:您当然应该按照 Nikita 的建议将其设为 Number 数组。
【讨论】:
您可以通过拥有一个作为 Integer/Double 超类的对象数组来做到这一点(正如在其他地方指出的那样)。
但是,我可能会通过实现一个具有Integer 组件和Doubles 数组的对象来强制类型安全,并存储这些数组。好处(尽管有额外的复杂性)是您将具有类型安全性,并且不必将第一个元素转换为 Integer 而将其余元素转换为 Doubles。
【讨论】:
如果内存非常重要,您可能希望使用 long[]。您可以轻松存储“int”,但“double”需要更多工作:
long x = Double.doubleToRawLongBits(double value);
double value = Double.longBitsToDouble(long x).
但也许最好创建一个特殊的类,然后移动数组索引:
class Y {
int x;
double[] values;
}
【讨论】: