我正在試圖找到for-each循環的工作,當我做一個函數調用。請參見下面的代碼,for-each循環如何在JAVA內部工作?
public static int [] returnArr()
{
int [] a=new int [] {1,2,3,4,5};
return a;
}
public static void main(String[] args)
{
//Version 1
for(int a : returnArr())
{
System.out.println(a);
}
//Version 2
int [] myArr=returnArr();
for(int a : myArr)
{
System.out.println(a);
}
}
在版本1中,我打電話returnArr()在for-each循環和在第2版,我顯式調用returnArr()方法並將其分配給一個數組和方法然後遍歷它。兩種方案的結果都相同。我想知道哪個更有效,爲什麼。
我認爲版本2會更有效率,因爲我沒有在每次迭代中調用方法。但令我驚訝的是,當我使用版本1調試代碼時,我看到方法調用只發生一次!
任何人都可以請解釋它是如何工作的? 當我編碼複雜的對象時,哪個更有效/更好?
那麼,您親眼看到調試第一個版本時沒有區別。 – Eran 2015-02-09 07:11:05
因此,在代碼效率方面,兩個版本沒有區別? – Abhishek 2015-02-09 07:37:09