簡體   English   中英

在嵌套for循環中使用ArrayList的contains()方法是一個不錯的選擇嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM