【问题标题】:Int and Double in one array in JavaJava中的一个数组中的Int和Double
【发布时间】:2011-04-11 05:23:32
【问题描述】:

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

【问题讨论】:

  • 为什么?对我来说听起来更像是一个类而不是一个数组。

标签: java arrays integer double


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以通过拥有一个作为 Integer/Double 超类的对象数组来做到这一点(正如在其他地方指出的那样)。

    但是,我可能会通过实现一个具有Integer 组件和Doubles 数组的对象来强制类型安全,并存储这些数组。好处(尽管有额外的复杂性)是您将具有类型安全性,并且不必将第一个元素转换为 Integer 而将其余元素转换为 Doubles。

    【讨论】:

    • 或者只使用 Map
    【解决方案3】:

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

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

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

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

    【讨论】:

    • 其实,为什么不一直使用 double[] ,然后转换第一个元素呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2013-04-26
    • 1970-01-01
    • 2021-11-01
    • 2014-03-20
    相关资源
    最近更新 更多