2012-09-19 175 views
0

我有一个创建的DTO有两个独立列表,这两个列表包含不同的数据集,即第一个列表中可以说有一些“userloginname”以及第二个最后更新的“状态”。 在第二个列表中我有'userloginname'与所有状态记录(不只是第二个最后更新的状态)。通过多个列表进行迭代

如果想要从List1中获取每个'userloginname',并在某种条件下与list2中的每个'userloginname'进行比较,这是可能的。

谢谢

回答

1

纠正我,如果我是误会,但如何对这样的事情:

for (int i = 0 ; i < list1.size() ; i++) { 
    // Do something with "list1.get(i)" and "list2.get(i)" 
} 

有了这个,你可以在给定指标在list1与项目对应的指数比较项目在list2。如果你想每一个list1成员与所有其他list2成员相比,你可以这样做:

for (int i = 0 ; i < list1.size() ; i++) 
    for (int j = 0 ; j < list2.size() ; j++) { 
     // Do something with "list1.get(i)" and "list2.get(j)" 
    } 
+0

这应该做,但是2列表将需要有相同的长度。 – Thousand

+0

但该列表中存储了两个值,即登录名和状态,那么list1.get(i)会返回什么? – anandkk

0

转换列表中的一个使用“userloginname”作为一个重要的地图。

List<LastStatusRecord> lastStatusRecords = dto.getLastStatusRecords(); 
List<StatusRecord> statusRecords = dto.getStatusRecords(); 

Map<String, FullRecord> statusRecordIndex = new HashMap<String, StatusRecord>(); 
for (StatusRecord statusRecord : statusRecords) { 
    statusRecordIndex.put(statusRecord.getUserLoginName(), statusRecord); 
} 
for (LastStatusRecord lastStatusRecord : lastStatusRecords) { 
    StatusRecord statusRecord = statusRecordIndex.get(lastStatusRecord.getUserLoginName()); 
    // place the condition here 
}