當前位置:成語大全網 - 書法字典 - 如何高效地遍歷地圖?妳經常用的不壹定是最快的。

如何高效地遍歷地圖?妳經常用的不壹定是最快的。

正如文章標題所言,遍歷地圖是開發過程中的常見行為,並且有多種實現方式。本文將帶領您了解如何更有效地遍歷地圖。

首先,讓我們看看遍歷地圖的方法。

這應該算是比較常見的使用方式,也比較容易理解。

KeySet:獲取映射中的所有鍵,然後依次遍歷每個鍵。

這是我在開發中通常使用的方式,簡單易懂。

但是它的性能如何呢?後續有待揭曉。

我不知道有多少人使用過Java8中的並行模式,它本質上是壹種並行處理方法。

表現如何?稍後會宣布。

如果不能,為什麽不嘗試尋找外援呢?

測試環境如下:英特爾i7-4790 3.60 GHz,16 GB。

測試集是壹個小地圖集(約100個元素),每種方法的時間消耗如下:

從結果可以看出,當數據量相對較小時,使用Java 8中的foreach暫時領先。

測試集是元素數據為1000的地圖集,測試結果如下:

從結果集來看,在數據量中等的情況下,外援Eclipse(CS)collections中的MutableMap表現最好,獲得了第壹名。

其次是Java 8中的foreach,排名第二。

測試集是壹個元素數據為100000(十萬級)的地圖集,測試結果如下:

使用叠代器和映射。詞條方法,1排名第壹,幾乎領先第二名7s。

第二名是Eclipse(CS)集合中的MutableMap,它排名第二,在大量數據下表現良好。

它指的是Java8中的foreach,以前在小數據量中表現良好,但排名較低,但仍然超過了使用Java 8的Stream API。

還有壹個現象:Java8中使用並行模式計算的並行流api在有大量數據時的性能優於foreach和stream api。

下表顯示了每種方法在不同數據量下的性能。

在正常開發中,當數據量不是太大時,除了外援之外,Java 8中的foreach方法3的性能更好。但是,流API並行方法8的並行操作沒有預期的那麽好,而流API方法7相當令人滿意。

本文主要列舉了多種遍歷地圖的方法,每種方法各有特點,有人喜歡foreach的通俗易懂;有些人喜歡小溪的整潔。

從性能角度來看,在數據量較小的情況下,首選Java8 Foreach方法3。

叠代器和映射。在數據量較大的情況下,建議使用1的錄入方法。

我是大黃,壹個只會寫HelloWorld的程序員。下次見。