所设计的模块,为了普适性而给输入数据和模块参数设置成随机,造成模块的输出数据数量等每次都是变化的。这样一来存储模块输出数据的只能选择arraylist或vector了是吗?
模块的数量不小,其各自的输出数据自身亦要成为下一个模块的输入,即arraylist的内容要被频繁调用,简单而言如下
 for(int i=0;i<arraylist.size();i++){
    for(int j=0; j<i; j++){
        各模块元素自身按输出出现先后顺序的两两四则计算譬如差运算
    }
 }
 由于各元素输出量比较大,累计运算时间消耗很大,可有替代方案?比如,将每次的模块输出数据由arraylist导入到固定数组中,模块自身的输出元素四则计算通过固定数组来进行,问题在于,仍然避免不了频繁读取arraylist以把数据复制到固定数组中,而且,固定数组的大小无法确定。

解决方案 »

  1.   

    首先,有一点可以改的:arraylist.size(),可以定义一个常量去存放它的大小,避免每次都要去读arraylist的大小.其次,如果arraylist太大的话,可以考虑将其分解的方法.
      

  2.   

    谢谢回复。第一点确实没考虑到位,分数献上,改过后另开帖。总体结构为:前中后三层,每层三到五个模块,各层模块两两相连(前层模块输出arraylist为后层模块输入,不跨越),层内模块互不相关。
    实现目标:检验最后层输出数据,根据误差修改各层计算参数重新计算,此时前层原始输入数据不变。初始各模块arraylist不大,在计算过程中会因发散问题造成膨胀但最大也不过20个元素,理想结果最终后层各模块输出数量均收敛到个位数。三层每层三到五个模块,模块内数据的计算全部为arraylist下的递归计算,这方面可有改善途径?
      

  3.   

    定义一个变量存放目前list大小这个想法可行。
    然后考虑 用map代替arraylist。