java效能優化方案3——不要使用iterator()方法
3、不要使用iterator()方法
這條建議不適用於一般的場合,僅適用於在 N.O.P.E 分支深處的場景。儘管如此也應該有所瞭解。Java 5格式的迴圈寫法非常的方便,以至於我們可以忘記內部的迴圈方法,比如:
for (String value : strings) {
// Do something useful here
}
當每次程式碼執行到這個迴圈時,如果 strings 變數是一個 Iterable 的話,程式碼將會自動建立一個Iterator 的例項。如果使用的是 ArrayList 的話,虛擬機器會自動在堆上為物件分配3個整數型別大小的記憶體。
private class Itr implements Iterator {
int cursor;
int lastRet = -1;
int expectedModCount = modCount;
// ...
也可以用下面等價的迴圈方式來替代上面的 for 迴圈,僅僅是在棧上“浪費”了區區一個整形,相當划算。
int size = strings.size();
for (int i = 0; i < size; i++) {
String value : strings.get(i);
// Do something useful here
}
如果迴圈中字串的值是不怎麼變化,也可用陣列來實現迴圈。
for (String value : stringArray) {
// Do something useful here
}
小結
無論是從易讀寫的角度來說,還是從API設計的角度來說迭代器、Iterable介面和 foreach 迴圈都是非常好用的。但代價是,使用它們時是會額外在堆上為每個迴圈子建立一個物件。如果迴圈要執行很多很多遍,請注意避免生成無意義的例項,最好用基本的指標迴圈方式來代替上述迭代器、Iterable介面和 foreach 迴圈。
相關文章
- java效能優化方案——使用entrySet()Java優化
- java效能優化方案9——優化自定義hasCode()方法和equals()方法Java優化
- java效能優化方案1——使用StringBuilderJava優化UI
- java效能優化方案2——避免使用正規表示式Java優化
- java效能優化方案5——使用原始型別和棧Java優化型別
- Java toString的效能優化方案比較Java優化
- MySQL 效能優化方案MySql優化
- java使用iteratorJava
- java效能優化Java優化
- 前端效能優化方案索引前端優化索引
- Java 效能優化之——效能優化的過程方法與求職面經總結Java優化求職
- java效能優化方案10——考慮使用set而並非單個元素Java優化
- Web 效能優化方法Web優化
- 人人都能掌握的Java服務端效能優化方案Java服務端優化
- 前端開發效能優化方案前端優化
- 微信小程式效能優化方案微信小程式優化
- React效能優化方案之PureRenderMixinReact優化
- JAVA效能優化思路探究Java優化
- 【Java效能優化思路方向】Java優化
- Java效能優化技巧集合Java優化
- [java][效能優化]java高階開發必會的50個效能優化Java優化
- React效能優化方案之PureComponentReact優化
- 網路效能優化常用方法優化
- Oracle SQL效能優化常用方法OracleSQL優化
- 怎麼做好Java效能優化Java優化
- mysql 大表中count() 使用方法以及效能優化.MySql優化
- 自動化 Web 效能優化分析方案Web優化
- JavaScript資料訪問效能優化方案JavaScript優化
- JavaScript無阻塞載入效能優化方案JavaScript優化
- SQL優化常用方法3SQL優化
- CSS3 動畫卡頓效能優化解決方案CSSS3動畫優化
- CSS3動畫卡頓效能優化解決方案CSSS3動畫優化
- Oracle效能優化方法論的發展之二:基於OWI的效能優化方法論Oracle優化
- 效能優化-使用 RAIL 模型評估效能優化AI模型
- 《java學習三》jvm效能優化-------調優JavaJVM優化
- 效能優化 - Oracle Tuning 總結 3 優化統計優化Oracle
- 【前端效能優化】vue效能優化前端優化Vue
- 總結前端效能優化的方法前端優化