我将解决这一点,这里的每个人都大部分都在掩饰:正常的声明和增强的声明之间存在关键区别.
增强型被定义为in the JLS作为语法糖.你得到什么样的糖取决于你正在迭代什么.
>如果您正在迭代像ArrayList这样的Iterable,那么它正在使用该实体的Iterator.
for(I #i=Expression.iterator(); #i.hasNext();){
VariableModifiersopt TargetType Identifier=
(TargetType) #i.next();
Statement
}
>如果你在一个数组上进行迭代,那么它就是习惯做的常见for语句的简写.
T[] #a = Expression;
L1: L2: ... Lm:
for (int #i = 0; #i < #a.length; #i++) {
VariableModifiersopt TargetType Identifier = #a[#i];
Statement
}
因此,增强型有一个假设:
您要迭代的内容必须是非空集合或数组.
该语句仅用于迭代现有元素,而不是提供迭代添加新元素的方法或接口.
有许多方法可以对此进行排序,但最简单的方法是使用for语句.
ArrayList arraylist = new ArrayList(10);
for (int i = 0; i < 10; i++) {
arraylist.add( (2+(i*2)));
}