我刚从书中读到了这一点" Android编程 - 推动极限"作者:Hellman,Erik。第38页:
void loopOne(String[] names) {
int size = names.length;
for (int i = 0; i < size; i++) {
printName(names[i]);
}
}
void loopTwo(String[] names) {
for (String name : names) {
printName(name);
}
}
void loopThree(Collection<String> names) {
for (String name : names) {
printName(name);
}
}
void loopFour(Collection<String> names) {
Iterator<String> iterator = names.iterator();
while (iterator.hasNext()) {
printName(iterator.next());
}
}
// Avoid using enhanced for-loops for ArrayList
void loopFive(ArrayList<String> names) {
int size = names.size();
for (int i = 0; i < size; i++) {
printName(names.get(i));
}
}
这些方法显示了四种不同的循环集合方式 和数组。前两种方法具有相同的性能,所以它是 如果你愿意,可以安全地在数组上使用增强的for循环 阅读条目。对于Collection对象,你会得到相同的 当您手动使用增强型for循环时的性能 检索遍历的迭代器。 你应该做的唯一一次 手动for循环是指有一个ArrayList对象。
我之前搜索过,foreach和normal for循环在Java中没有性能差异,是否有任何特殊原因仅适用于Android(版本4 +)?