java Map 遍歷壹般有四種方式
方式壹: 這是最常見的並且在大多數情況下也是最可取的遍歷方式。在鍵值都需要時使用。
方式二: 在for-each循環中遍歷keys或values。
如果只需要map中的鍵或者值,妳可以通過keySet或values來實現遍歷,而不是用entrySet。
該方法比entrySet遍歷在性能上稍好(快了10%),而且代碼更加幹凈。
方式三:使用Iterator遍歷
使用泛型:
不使用泛型:
妳也可以在keySet和values上應用同樣的方法。
方法四:? 通過鍵找值遍歷(效率低)
作為方法壹的替代,這個代碼看上去更加幹凈;但實際上它相當慢且無效率。
因為從鍵取值是耗時的操作(與方法壹相比,在不同的Map實現中該方法慢了20%~200%)。如果安裝了FindBugs,它會做出檢查並警告妳關於哪些是低效率的遍歷。所以盡量避免使用。
總結:
如果僅需要鍵(keys)或值(values)使用方法二。
如果所使用的語言版本低於java 5,或是打算在遍歷時刪除entries,必須使用方法三。
否則使用方法壹(鍵值都要)。
擴展資料:
類似的遍歷算法:
二叉樹的遍歷算法
1、先(根)序遍歷的遞歸算法定義:
若二叉樹非空,則依次執行如下操作:
⑴ 訪問根結點;
⑵ 遍歷左子樹;
⑶ 遍歷右子樹。
2、中(根)序遍歷的遞歸算法定義:
若二叉樹非空,則依次執行如下操作:
⑴遍歷左子樹;
⑵訪問根結點;
⑶遍歷右子樹。
3、後(根)序遍歷得遞歸算法定義:
若二叉樹非空,則依次執行如下操作:
⑴遍歷左子樹;
⑵遍歷右子樹;
⑶訪問根結點。
參考資料: