Android运行时阵列大小效率

时间:2018-04-22 14:03:32

标签: android arrays performance initialization runtime

我的潮汐预测应用程序使用8个双阵列进行潮汐高度计算。从字面上看,美国的每个潮汐站都要求它们有37个元素,除了阿拉斯加的安克雷奇,需要124个元素。

这是一个声明示例

final int NUM_C = 37;   //all stations except anchorage use 37
//final int NUM_C = 124;  //anchorage uses 124
double a[] = new double[NUM_C + 1];

我可以在应用启动时有效指定数组大小吗?我可以确定哪个是必需的。我不想为99%以上的用户提供低效率的应用程序来处理这种情况。差异只有大约3K字节。

1 个答案:

答案 0 :(得分:0)

为什么不在构造函数中实例化变量?它为您提供了更多的自由来进行程序操作。

 select 
     *, GETDATE()
 from 
     Securities sec
 where
   sec.sedolcode = 'ABCDEF'
   OR ((SELECT COUNT(1) FROM securites WHERE sedolcode ='ABCDEF') = 0 AND sec.riccode = '002815.SZ')

据我所知,构造函数中对象字段的实例化是正常情况,而带声明的实例化只是Java的一个附加功能。

至于速度没有区别,如果你用文字值,常量或变量指定大小。一个更有趣的问题是,如果你应该使用public class Station { double a[]; public Station(String location) { if(location.equals("Anchorage")) { a = new double[124]; } else { a = new double[37]; } } } 而不是数组。 See here

ArrayList

我的选择是public class Station { ArrayList<Double> a; public Station(String location) { if(location.equals("Anchorage")) { a = new ArrayList<>(124); } else { a = new ArrayList<>(37); } } } ,因为它更灵活。无论如何124次不是一个非常大的数字。没理由为此担心性能。