在android开发中只要是列表式风格界面我们几乎都需要用到List来存放数据,在数量很少的List的话几乎任何一种循环遍历方式整体性能都无差别,但是当我们遇到数据量稍大的时候有必要考虑用哪种方式写起来比较高性能。
常见的有以下三种:
第一种
for (String s : tests) {
// ....
}
第二种
int size = tests.size();
for (int i = 0; i < size; i++) {
tests.get(i);
}
第三种
Iterator<String> it = tests.iterator();
while(it.hasNext()) {
it.next();
}
采用以上三种在数据量少于等于100的情况下几乎输出时间都为0,当在1000左右的时候第三种稍微慢在1ms左右<可能在当时的环境原因>可以说三种方式也是没差别,当数据量在10000左右我们就能看到区别了第一种和第三种差不多要4ms而第二种只要2ms,当数据量在100000左右的话第一种差不多要40ms,第二种17ms,第三种33ms。
声明:以上环境在MacBook Pro -> Eclipse -> Android5.0 -> Nexus5手机环境下的测试结果,Google以下资料显示在非JIT的情况下其实第一种是最快的,但是在Android环境下还是采用第二种才是最佳性能选择。
原文地址:http://blog.csdn.net/neacy_zz/article/details/46611071