数据在for循环中被覆盖为新值和以前的值

时间:2012-10-16 10:01:07

标签: java loops

我想比较来自循环的前一个和新值以及基于数据增量的一些行。为此我正在做如下但是数据被覆盖,因为我在内部进行循环。我可以执行此操作。

    for (RecordData recordData : recordDataList) {      
        prevRespondentId = recordData.getRespondentId();
        if (recordData.getRespondentId() != prevRespondentId) {
             rowDataNumber++;
        }
        prevRespondentId = recordData.getRespondentId();
    }

我有1,2,3这样的数据作为响应者ID,我需要根据该增量数据看到新的和上一个。

3 个答案:

答案 0 :(得分:1)

这会解决您的问题吗?

    prevRespondentId = recordDataList.get(0).getRespondentId(); //Initialize to first or default value probably -1?

    for (RecordData recordData : recordDataList) {
                if (recordData.getRespondentId() != prevRespondentId) {
                rowDataNumber++;
            }
            prevRespondentId = recordData.getRespondentId();
        }

基本上你甚至在检查之前就覆盖了prevRespondentId,这导致了这个问题。

答案 1 :(得分:0)

很难理解你尝试做什么,但也许是这样的:

for (RecordData recordData : recordDataList) {
        if (recordData.getRespondentId() != prevRespondentId) {
            rowDataNumber++;
        }
        prevRespondentId = recordData.getRespondentId();
}

在你完成if检查之前,基本上不要覆盖preRespondentId。这将确保它始终是先前的受访者ID。你当然需要初始化它。

希望有所帮助。

答案 2 :(得分:0)

 ..some type.. prevRespondentId = -1;
 for (RecordData recordData : recordDataList) {
     if (recordData.getRespondentId() != prevRespondentId) {
         rowDataNumber++;
     }
     prevRespondentId = recordData.getRespondentId();
 }