我的潮汐预测应用程序使用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字节。
答案 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次不是一个非常大的数字。没理由为此担心性能。