如何快速從 List 中查找一條數據


這是一個很經典的面試題,其實考了很多點

首先先問問,你這個List是ArrayList還是LinkedList

那么為什么要問這個呢,ArrayList和LinkedList區別我就不介紹了吧,ArrayList數組結構,LinkedList鏈表結構。

ArrayList 測試結果

for循環測試結果:11920
foreach循環測試結果:15765
iterator循環測試結果:13040
LinkedList 測試結果

for循環測試結果:146654
foreach循環測試結果:2061
iterator循環測試結果:2061

根據以上可以得到的結果是:for循環便於訪問順序存儲(ArrayList)的記錄,而foreach和迭代器便於訪問鏈接存儲(LinkedList)。

這回面試官又發問了,那如果我的list里面有1000w條數據呢?

首先,肯定是要多線程分段查找了,這回我查找的方式也要變一變了,那我就得反問你一句,面試官你的數據是有序的嗎,如果是有序的,那么我們可以用二分查找,你看,又提升效率了,如果是無序的,那我咋辦,老辦法唄,你是Arraylist還是LinkedList啊。
最后的最后,你可以提出你的想法,告訴面試官,下次再有1000w條數據,可千萬別放在List里面,hash化一下多好,要誰查誰


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM