Anylogic:更快地填充数组值

时间:2017-10-27 13:22:41

标签: anylogic

我尝试在内部数据库表的模拟开始时填充double [8760]类型的数组参数。此表具有hourofyear列和每个参数的列。我的代码正在运行但处理数据非常慢:

for (int row_counter=0;row_counter<= 8759; row_counter++) {
ProfileParameterA[row_counter] = selectFrom(data)
.where(data.hourofyear.eq(row_counter))
.uniqueResult(data.a, double.class);
ProfileParameterB[row_counter] = selectFrom(data)
.where(data.hourofyear.eq(row_counter))
.uniqueResult(data.b, double.class);    
}

有关如何改进导入以将表格数据加载到参数中的任何建议吗?

非常感谢。

亨氏-S

1 个答案:

答案 0 :(得分:0)

试试这个:

ProfileParameterA = selectFrom(data)
    .where(data.hourofyear.eq(row_counter))
    .list(data.a).stream().mapToDouble( d -> d ).toArray();

ProfileParameterB = selectFrom(data)
    .where(data.hourofyear.eq(row_counter))
    .list(data.b).stream().mapToDouble( d -> d ).toArray();

它是Java Stream API的一部分,便于使用功能样式的列表,数组和集合。