我經常遇到這樣的情況,我想爲某個對象的某個Collection或數組使用enchanced for循環。增強for循環
例如
items = basket.getItems();
for (int item : items) {
// Do something
}
另一種方法是:
for (int item : basket.getItems()) {
// Do something
}
第二個是更緊湊,在我看來,提高了可讀性,尤其是當item
變量不會被其他任何地方使用。
我想知道for語句中的getter是否對性能有任何影響。它會被優化成與第一個類似的東西嗎?或者每次都會訪問getter?當然,getItems()
可能會做一些很慢的事情(例如網絡訪問等)
問題與其他一些類似,但是指的是集合/數組本身的getter,而不是它的大小。但最終可能會出現同樣的情況。
你爲什麼不測試它?只需在該吸氣器中放置一個「println」即可。 –
在我的特定配置和特定對象中進行測試不會產生正確的答案,因爲對我的具體結果進行概括會是錯誤的 – LyK
@tobias_k,好的想法。但是在理論上可能會(當然)編譯器不會用引用替換調用'basket.getItems()',而實際上該方法不僅僅是返回一個引用嗎? – GameDroids