开发者社区 问答 正文

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

我正在实现一个接口,该接口的功能类似于可以包含某种对象的表的功能。该接口指定以下功能:

double[] getDoubles(int columnIndex); 在我的实现中,我感到很困惑的是,我将表数据存储在2D Object数组(Object[][] data)中。当我需要返回值时,我想执行以下操作(假定getDoubles()将仅在包含double的列上调用,因此将没有ClassCastExceptions):

double[] getDoubles(int columnIndex) { return (double[]) data[columnIndex]; } 但是-Java不允许Object[]强制转换为double[]。将其Double[]强制转换为可以,因为它Double是一个对象,而不是基元,但是我的接口指定数据将以形式返回double[]。

所以我有两个问题:

有什么办法可以从Object[][]表中获取列数据并返回原语数组? 如果确实将接口更改为return Double[],会对性能产生影响吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-09 13:19:14 1151 分享 版权
1 条回答
写回答
取消 提交回答
  • 不幸的是,Double如果要将其转换为,则需要遍历整个列表并将其取消装箱double[]。

    就性能而言,在Java中有一些时间与装箱和拆箱原语相关联。如果集合足够小,您将不会看到任何性能问题。

    2020-02-09 13:19:29
    赞同 展开评论
问答分类:
问答地址: