private long LagrangeCaculation(){
Date date = new Date();
long curMillis = date.getTime();
long since = curMillis-birthMills;
Long result = 0L;
Long aloneResult;
for (int i = 0; i < 27; i++) {
if(size == "Big"){
aloneResult = data[2][i];
}else {
aloneResult = data[1][i];
}
for (int j = 0; j < 27; j++) {
if (i != j) {
aloneResult *= (since - data[0][j]) / (data[0][i] - data[0][j]);
}
}
result += aloneResult;
}
return result;
}
(尺码是我的另一个参数) 现在,我正在使用这个函数(基于拉格朗日多项式)通过传递System.currentMills来获得每毫秒更改的时间。但它不起作用,不允许将更改时间作为参数传递?
答案 0 :(得分:0)
您可以使用函数本身调用System.currentTimeMillis
,而不是传递millis
参数。因此,只要在for循环中调用System.currentTimeMillis
,就会返回当前系统时间。例如:
private long LagrangeCaculationForSmall(){
Long result = 0L;
Long aloneResult;
for (int i = 0; i < 27; i++) {
aloneResult = data[1][i];
for (int j = 0; j < 27; j++) {
if (i != j) {
aloneResult *= (System.currentTimeMillis() - data[0][j]) / (data[0][i] - data[0][j]);
}
}
result += aloneResult;
}
return result;
}
(或者,如果您希望能够将不同的时间函数作为参数传递,则可以传递lambda表达式。)