Java是如何由编译器生成的循环代码?
例如,如果我有:
for(String s : getStringArray() )
{
//do something with s
}
Run Code Online (Sandbox Code Playgroud)
where getStringArray()函数返回我想要循环的数组,函数会一直调用还是只调用一次?一般来说,使用这个结构循环的代码有多优?
我猜它不起作用,因为在语法中第一个参数必须具有声明的类型.但是,如果我在一个带有参数的函数中使用for-each循环,就像我在这个例子中那样呢?变量p有一个声明的类型,我只想重用它.
public void addItem(Product p) {
// ensure that we don't add any nulls to the item list
if (p != null ) {
int i = 0;
for (p : items.keySet()) {
i++;
}
items.put( p , i);
}
}
Run Code Online (Sandbox Code Playgroud)
有一个相关的问题,Java for循环语法:"for(T obj:objects)".那个询问for-each语法意味着什么.我知道这意味着什么,我只想重用一个现有的变量,而不是必须声明一个新变量.