我正在实现一个接口,该接口的功能类似于可以包含某种对象的表的功能。该接口指定以下功能:
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
不幸的是,Double如果要将其转换为,则需要遍历整个列表并将其取消装箱double[]。
就性能而言,在Java中有一些时间与装箱和拆箱原语相关联。如果集合足够小,您将不会看到任何性能问题。