从前一个循环中获取值以在当前循环中使用

时间:2013-04-24 20:16:07

标签: java arrays for-loop

如何在当前循环中使用上一次迭代中的值?我正在生成double [] v并想要v - w,其中w是上一次迭代中v的值。显然我需要为2个数组实现减法。

if (!e.getValueIsAdjusting()) 
                {
                    double[] v = new double[uaCount.get(table.getValueAt(table.getSelectedRow(),0)).singleValues.size()];
                    int i = 0;
                    for(Long j : uaCount.get(table.getValueAt(table.getSelectedRow(),0)).singleValues) 
                    {
                      v[i++] = j.doubleValue();
                    }
                    double [] w, r;
                    //implement r = v-w
                    System.out.println(String.valueOf(uaCount.get(table.getValueAt(table.getSelectedRow(),0)).singleValues));
                    dataset.addSeries("Histogram",r, 1000, 0, 120000);  
                }

这样做的目的是在删除前一个数据集时将新数据集添加到我的直方图中。现在我想到这一点,减去这些值会给我不同的答案吗?

3 个答案:

答案 0 :(得分:1)

  

如何在当前循环中使用上一次迭代中的值?

将循环的当前值保存为previous,作为循环结束时的最后一行 在您重新输入的第一行循环中,previous具有之前的值

答案 1 :(得分:1)

在循环外声明一个变量来保存它

int val;
int prev;

for(int i=0; i<n; i++)
{
    //do stuff with val
    ...
    prev = val;
}

答案 2 :(得分:0)

根据您的解释,您的要求是执行以下操作:

for(initialization;condition;increment){
curr[i] = i;//holds your current ittration value
if(prev != null){
//do some operation
//these extra things can also be done by cure[i-1] instead of using extra variable just    //check if i>0 then get the previous value from your curr array and perform operation //accordingly
}
prev = curr[i];
}

方法2:正如其他用户所建议的那样,您可以使用更简单的收集框架。