2012-10-16 28 views
0

我想比较来自一个循环的前一个和新值,并基于数据增量一些rows.For我这样做像下面,但数据被覆盖,因为我是在里面做loop.How我可以执行此操作。数据获取覆盖for循环的新值和以前的值

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

我有一个像1,2,3一样受访者ID数据,我需要根据该增量数据,看看新的和prev。

回答

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之前,甚至在检查它之前,这是造成问题。

0

很难理解你要做的不过也许是这样的:

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

基本上不会覆盖preRespondentId,直到你做你的,如果检查。这将确保它始终是以前的受访者ID。你当然需要初始化它。

希望有所帮助。

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