我遇到了一个棘手的问题 . 我正在寻找一个如何处理这个问题的建议 . 我的数据集中有三个字段 . 我想进行减法 . 问题就是这样 .
Time(s) a x
1 0.1 0.2
2 0.4
3 0.6
4 0.7
5 0.2 0.9
我需要从(a-x)执行减法 . 但减法的方法就像在时间1s a
的值为0.1 . 操作将是(0.1-0.2)第一次迭代 . 2nd iteration (0.1-0.4)
. 3rd iteration (0.1-0.6)
. 4th iteration (0.1-0.7)
但在第二次迭代中它将是 (0.2-0.9)
.
这是我的问题陈述 . 我想在 Java
中写下这段代码 . I don't need Java code
. 我可以自己写下来 . 我需要一个建议如何继续这种方法?一个想法是 creating array for each variable
. 但后来坚持循环 . 循环如何迭代?很明显,数组a是静态的,直到获得下一个值,该值可在时间5s获得 .
3 回答
这取决于输入文件的大小:
如果数据集适合内存,则将其作为2个单独的数组或
Row
对象的一个数组加载,其中a
和x
作为字段 . 之后,它是简单的迭代,记住a
缺失时包含a
的最后一行使用它 .如果数据集很大,最好使用BufferedReader读取它,并且只记住上次遇到的
a
和x
. 这将大大减少内存消耗,并将是首选方法 .如果
a
每4个数字更改一次,您可以使用time's / 4 + 1
从a
的小数组中获取值 .如果
a
不是每4个数字都改变,那么我建议使用填充相同值的完整数组 .现在,我发现你没有使用数据库,只是从文件中读取,也许试试这个
只需保留
a
的旧值,直到新值可以覆盖它 . 这是内存高效的,因为它逐行解析 .