我有2個對象列表,每個對象中都有一個字符串需要與另一個列表進行比較。Java從2個列表比較字符串的最佳方法
並且在匹配時使用來自第二個對象的值更新第一個對象中的getter。
這是最好的方法嗎?或者有沒有辦法在兩組之間做一個查找,也許一些番石榴工具?
for(firstObject fo : list1)
{
for (secondObject so : list2)
{
if (fo.getUserId().equals(so.getUserId()))
{
fo.setName(so.getName());
fo.setEmail(so.getEmail());
}
}
}
我會考慮做 「等於」 比較的用戶ID,並具有方法從另一個實例初始化。第一個取決於您的實際業務邏輯。 –
Dave提出的更改後,而不是嵌套循環(複雜性O(n ** 2))將一個列表轉換爲HashMap進行快速查找(複雜度O(n))。 – maaartinus
@maaartinus它是O(n * m) – nachokk