我应该避免使用Android 4.0+中的ArrayList吗?

时间:2015-02-16 11:05:36

标签: android performance for-loop arraylist foreach

我刚从书中读到了这一点" 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 +)?

1 个答案:

答案 0 :(得分:1)

请查看有关for here

的信息