【问题标题】:List iteration on Android, foreach or indexed [duplicate]Android上的列表迭代,foreach或索引[重复]
【发布时间】:2015-07-25 07:36:01
【问题描述】:

给定List<T>,在 Android 上迭代的首选方式是什么?现代 Android 设备是否存在性能差异?

for (int i=0; i<list.size(); i++) {
    T element = list.get(i);
    ...
}

for (T element : list) {
    ...
}

编辑:这个问题是特定于 Android 运行时的。另一个“重复”问题没有解决 Android 的具体问题。

【问题讨论】:

  • 第一个版本稍慢
  • @Blackbelt 正确编写时第一个版本不可能变慢(大小应该保存在变量中,因此它不会被调用 N 次)。第二个需要一个函数调用来迭代,所以它总是会变慢。只是它的成本足以让任何人关心(可能不是)。
  • 如果 List 是 LinkedList,则第一个较慢
  • 这个问题是 Android 特有的,我不同意它是重复的。

标签: java android performance


【解决方案1】:

第二个版本 - for-each 循环 - 分配一个 Iterator 对象,这对于 Android 代码来说可能是不可取的。第一个版本可能更可取,只要您确定 ListRandomAccess 实现,例如 ArrayList

【讨论】:

    猜你喜欢
    • 2014-01-16
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2023-03-23
    • 1970-01-01
    • 2011-01-22
    • 2014-10-04
    相关资源
    最近更新 更多