我有一個創建的DTO有兩個獨立列表,這兩個列表包含不同的數據集,即第一個列表中可以說有一些「userloginname」以及第二個最後更新的「狀態」。 在第二個列表中我有'userloginname'與所有狀態記錄(不只是第二個最後更新的狀態)。通過多個列表進行迭代
如果想要從List1中獲取每個'userloginname',並在某種條件下與list2中的每個'userloginname'進行比較,這是可能的。
謝謝
我有一個創建的DTO有兩個獨立列表,這兩個列表包含不同的數據集,即第一個列表中可以說有一些「userloginname」以及第二個最後更新的「狀態」。 在第二個列表中我有'userloginname'與所有狀態記錄(不只是第二個最後更新的狀態)。通過多個列表進行迭代
如果想要從List1中獲取每個'userloginname',並在某種條件下與list2中的每個'userloginname'進行比較,這是可能的。
謝謝
糾正我,如果我是誤會,但如何對這樣的事情:
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)"
}
轉換列表中的一個使用「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
}
這應該做,但是2列表將需要有相同的長度。 – Thousand
但該列表中存儲了兩個值,即登錄名和狀態,那麼list1.get(i)會返回什麼? – anandkk