关于List的遍历性能比较

当数量很少的List,几乎任何一种循环遍历方式整体性能都无差别,但是当我们遇到数据量稍大的时候有必要考虑用哪种方式写起来比较高性能,比如我在项目中遇到遍历1000多项,不同的方法,在体验上最明显的就是界面交互时的卡顿,常见的遍历有以下三种:
第一种

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();
}

多次调试表明,第二种方式在数据量较大时,遍历性能相比较其他两种最好,在界面交互上也没有了一开始的卡顿问题,因为我一开始用的方法是第一种。另外要说的是,第二种方法的循环条件,把size提前计算好,否则的话每次循环都要计算一次,也会影响性能,这个我在帮大学同学调试代码的时候遇到就是没有提前计算好,而且循环量还比较大,就导致运行报oom。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值