【问题标题】:In Java, I want to convert a short[] to a double[]在 Java 中,我想将 short[] 转换为 double[]
【发布时间】:2010-12-13 00:07:37
【问题描述】:

我正在使用short[] 数组:

short[] buffer = new short[bufferSize];

我有一个将double[] 作为参数类型的方法,所以我不能按原样传递它。我需要把它变成double[]。我做过的最好的事情是创建一个新对象并循环并转换,如下所示:

double[] transformed = new double[bufferSize];

for (int j=0;j<bufferSize;j++) {
    transformed[j] = (double)buffer[j];
}

我还没有测试过上述方法,但我想知道是否有更好的方法来做到这一点?

谢谢。

【问题讨论】:

  • 对于这么简单的事情,我什至不会浪费时间寻找替代方案。
  • 我哪个 java 会给 uns 一些操作符,比如 short[] arr=new short[blub]; int[] otherArr=new int[blub];其他Arr[]=(int)arr;或者其他的东西。 ;-)

标签: java double short


【解决方案1】:

尽管您可以使用 buffer.length 而不是 buffersize,但它已经足够好了。

【讨论】:

    【解决方案2】:

    Laurence 提供的答案是正确的,应该被接受,但值得注意的是,在 Java 中复制数组的方法不止一种。每种方法的解释见this文章。

    • 使用 Arrays 类的各种 copyOf 和 copyOfRange 方法
    • 使用 System.arraycopy - 在复制部分数组时很有用
    • 调用它的克隆方法,并进行强制转换 - 最简单的样式,但只执行浅层克隆
    • 使用 for 循环 - 不止一行,并且需要循环索引

    【讨论】:

    • 这些细节与这里无关。 OP 不需要常规的数组副本。
    • 我只是认为这将是有用的补充数据 - 这就是为什么我说应该接受 Laurence 的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 2022-01-10
    相关资源
    最近更新 更多