我有以下代碼:Java高級循環:什麼是(不)評估循環的頭?
for (Attribute thisAttribute : factor.getAttributes()) {
// blabla
}
其中factor.getAttributes()
回報List<Attribute>
。
顯然,只有一個初始調用factor.getAttributes()
然後遍歷開始。但是,我不明白爲什麼只有一個電話。如果我在常規的for()
循環的頭文件中包含一個函數調用,我相信它將在每次迭代中進行評估。在這方面,高級循環的方式和原因有何不同?
對於每個迴路是對於正常的循環來說有點不同。 你需要明白,每個循環我們得到的集合,並使用迭代器來循環它。 – StackFlowed 2014-09-12 14:16:05
那麼JVM如何知道我的意思是一開始只需要一次獲取集合呢? – James 2014-09-12 14:17:53
取決於你正在討論的循環頭部分,這個部分叫做什麼東西。在經典的循環中,'get(int i = getStartInt(); i
ajp15243
2014-09-12 14:18:09