gpt4 book ai didi

java - 如何将 Double[] 转换为 double[]?

转载 作者:IT老高 更新时间:2023-10-28 13:53:19 24 4
gpt4 key购买 nike

我正在实现一个接口(interface),它的功能类似于可以包含一种对象类型的表。接口(interface)指定如下函数:

double[] getDoubles(int columnIndex);

让我感到困惑的是,在我的实现中,我将表数据存储在二维 Object 数组(Object[][] data)中。当我需要返回值时,我想做以下事情(假设 getDoubles() 只会在包含 double 的列上调用,所以不会有 ClassCastExceptions):

double[] getDoubles(int columnIndex) {
return (double[]) data[columnIndex];
}

但是 - Java 不允许将 Object[] 强制转换为 double[]。将其转换为 Double[] 是可以的,因为 Double 是一个对象而不是原始类型,但我的界面指定数据将作为 double[]

所以我有两个问题:

  1. 有什么方法可以从 Object[][] 表中获取列数据并返回基元数组?
  2. 如果我将接口(interface)更改为返回 Double[],会对性能产生影响吗?

最佳答案

如果您不介意使用 3rd 方库,commons-lang 有 ArrayUtils 类型和各种操作方法。

Double[] doubles;
...
double[] d = ArrayUtils.toPrimitive(doubles);

还有互补的方法

doubles = ArrayUtils.toObject(d);

编辑:回答剩下的问题。这样做会有一些开销,但除非数组真的很大,否则你不应该担心它。在重构之前先测试一下是否有问题。

实现您实际询问的方法会得到类似的结果。

double[] getDoubles(int columnIndex) {
return ArrayUtils.toPrimitive(data[columnIndex]);
}

关于java - 如何将 Double[] 转换为 double[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1109988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com