关于性能和内存分配的问题。我有一个返回ArrayList<double[]>
的代码,我想转换为double[][]
。问题是,因为我必须获得2D数组的维度,所以没有创建中间变量(features
)的第二种方法是否更加内存友好?
更具体的lbpFeatures.getFeatures().size()
和lbpFeatures.getFeatures().get(0).length
运行此方法两次(加上1为LBPdescriptions = lbpFeatures.getFeatures()
部分的初始赋值)或java足够聪明,只执行一次(如它是我想要的方法)并从那里确定尺寸?
//first approach
List<double[]> features = lbpFeatures.getFeatures();
LBPdescriptions = features.toArray(new double[features.size()][features.get(0).length]);
//second approach
LBPdescriptions = lbpFeatures.getFeatures().toArray(new double[lbpFeatures.getFeatures().size()][lbpFeatures.getFeatures().get(0).length]);