Java裡用Iterator遍歷乙個ArrayList裡的資料比直接用ArrayList裡的方法訪問整個List裡的資料要好嗎?

時間 2021-06-02 11:46:43

1樓:只增笑耳Jason

真不知道說差不多是都是怎麼想的。

arraylist, 是內部用乙個array來作為儲存的 list 實現。

所以 arraylist.get(i) 時間複雜度是O(1)用 iterator 從頭來,時間複雜度是O(n)

2樓:

我這有乙個學習時, 自己做的小測試, 環境是我本機, 分別是 ArrayList和Vector對5000W個Integer進行插入, 用iterator, foreach和Enumeration進行迭代的對比.

只是學習時候弄著玩的, 不代表實際生產環境裡的效果. 但大概也能看出來, 在不考慮效能只考慮時間的情況下, 使用foreach和iterator幾乎是沒有差別的. 但要考慮效能就是另外一回事了.

但題主不覺得用foreach看起來很舒服麼

3樓:趙劼

假如是ArrayList,用for加get效率更好,堆上沒開銷,適合密集使用。還有,CLR在遇到對List的foreach時會優化成對其內部陣列的for加get,陣列就更不用說了。另外.

NET的iterator可以寫作Struct,於是也沒堆分配了。

用java實現sql server備份資料庫,本機可以備份到本機,怎麼實現把伺服器備份到伺服器上??

Rachel 1.備份到遠端機為什麼不是UNC路徑?本機也是C盤,遠端也是C盤,sql server 怎麼知道你用的是哪個機器上的C盤 2.從你這個報錯來看應該就是路徑寫錯了,不是許可權問題。遠端伺服器UNC路徑格式是 servername foldername 3.如果還有報許可權問題,繼續收個p...

java基礎過了一遍,感覺不是很紮實,需要重新看一遍嗎?還是繼續往下學

湯小圓 首先不確定你說的基礎過了一遍,是怎麼過的 如果是都敲了一遍,那麼不需要再看了,接下來可以考慮用小專案練手,然後在練手的時候,時不時回頭鞏固基礎知識 如果是Android方向,可以看 瘋狂Android講義 然後試著做一些Android小應用,比如計算器,簡單一點的 如果是Web方向,可以看S...

為什麼當年 Android 選擇用 Java 作為開發語言?

韭韭 我相信做android應該會比較討厭NDK和so檔案一是c 難 IDE對NDK也支援不好最新的AndroidStudio都沒有高亮 二是so檔案真佔apk大小 當然NDK可以實現更底層的功能希望android 介面更完善吧把NDK淘汰掉噗 可以用c 開發的,Android有NDK做支援。 Sh...