如何快速從 List 中查詢一條資料

2022-06-21 17:00:14 字數 580 閱讀 5064

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

首先先問問,你這個list是arraylist還是linkedlist

那麼為什麼要問這個呢,arraylist和linkedlist區別我就不介紹了吧,arraylist陣列結構,linkedlist鍊錶結構。

arraylist 測試結果

for迴圈測試結果:11920foreach迴圈測試結果:15765iterator迴圈測試結果:13040

linkedlist 測試結果

for迴圈測試結果:146654foreach迴圈測試結果:2061iterator迴圈測試結果:2061

這回面試官又發問了,那如果我的list裡面有1000w條資料呢?

首先,肯定是要多執行緒分段查詢了,這回我查詢的方式也要變一變了,那我就得反問你一句,面試官你的資料是有序的嗎,如果是有序的,那麼我們可以用二分查詢,你看,又提公升效率了,如果是無序的,那我咋辦,老辦法唄,你是arraylist還是linkedlist啊。

最後的最後,你可以提出你的想法,告訴面試官,下次再有1000w條資料,可千萬別放在list裡面,hash化一下多好,要誰查誰

mybatis 用 IN 批量查詢 只返回一條資料

這個問題網上大多數是從其他角度 比如怎麼正確使用mybatis的標籤講的。我自己遇到問題的時候確定自己使用標籤沒問題,但執行結果還是超出期望。直接說結論吧。如果xml中寫的是 listgetlistbymsgids param msg ids listmsg ids xml中sql為 簡化了 部分 ...

ThinkPHP find方法 查詢一條資料記錄

thinkphp find 方法是和 select 用法類似的乙個方法,不同之處 find 查詢出來的始終只有一條資料,即系統自動加上了 limit 1 限制。當確認查詢的資料記錄只能是一條記錄時,建議使用 find 方法查詢,如使用者登入賬號檢測 public function chekuser ...

PL SQL中如何讓程式每隔幾秒插入一條資料

在編寫oracle pl sql中,如果需要程式執行中暫停幾秒鐘再繼續執行,可以通過oracle內建的dbms lock.sleep來實現,不過dbms lock包需要使用者自己安裝。root oraclevm su oracle oracle oraclevm sqlplus as sysdba ...