[英]Is it a good option to use contains() method of ArrayList in nested for loops w.r.t performance?
List<Employee> empsFromDB = repo.findAll(); //size m
List<Long> empIdsFromReq = req.getEmployeeIds();// size n
for(Employee emp: empsFromDB){
empIdsFromReq.contains(emp.getEmployeeId());
}
上面的代碼是否具有最佳的wrt
性能?
我的方法是創建一個員工Ids
作為key
並將員工Ids
作為值,然后使用ID列表從該表中檢索員工。
我的理解是,使用第二種方法時,最壞的情況是m+n
運算,而在第一種方法中,它的mxn
並不是最優的。
請指教。
如果可以使用HashSet
代替List
,則可以提高性能。
HashSet
contains()
與List
O(n)
O(1)
相比為O(1)
,因此,如果可以通過HashSet
進行操作,則永遠不要使用List
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.