关于python:你真的会写for循环吗来看看这些常见的for循环优化方式

咱们都常常应用一些循环耗时计算的操作,特地是for循环,它是一种反复计算的操作,如果解决不好,耗时就比拟大,如果解决书写切当将大大提高效率,上面总结几条for循环的常见优化形式。

首先,咱们初始化一个汇合 list,如下:

List<String> list = new ArrayList<String>();

办法一:最惯例的不加思考的写法

for (int i = 0; i < list.size(); i++) {
 System.out.println(list.get(i));
}

长处:较常见,易于了解
毛病:每次都要计算​​list.size()​​
办法二:数组长度提取进去

int m = list.size();
for (int i = 0; i < m; i++) {
      System.out.println(list.get(i));
}

长处:不用每次都计算
毛病:
m的作用域不够小,违反了最小作用域准则
不能在for循环中操作list的大小,比方除去或新加一个元素
办法三:数组长度提取进去

for (int i = 0, n = list.size(); i < n; i++) {
    System.out.println(list.get(i));
}

长处:不用每次都计算 ,变量的作用域遵循最小范畴准则
毛病:
m的作用域不够小,违反了最小作用域准则
不能在for循环中操作list的大小,比方除去或新加一个元素
办法四:采纳倒序的写法

for (int i = list.size() - 1; i >= 0; i--) {
System.out.println(list.get(i));
}

长处:不用每次都计算 ,变量的作用域遵循最小范畴准则
毛病:1、后果的程序会反 2、看起来不习惯,不易读懂
实用场合:与显示后果程序无关的中央:比方保留之前数据的校验
办法五:Iterator 遍历

for (Iterator<String> it = list.iterator(); it.hasNext();) {
      System.out.println(it.next());
}

长处:简洁
办法六:jdk1.5后的写法

for (Object o : list) {
     System.out.println(o);
}

长处:简洁联合泛型应用更简洁
毛病:jdk1.4向下不兼容
办法七:循环嵌套外小内大准则

for (int i = 0; i < 10; i++) {
   for (int j = 0; j < 10000; j++) {
   }
}

起因

办法八:循环嵌套提取不须要循环的逻辑

//前:
 int a = 10, b = 11;
  for (int i = 0; i < 10; i++) {
               i = i * a * b;
   } 
 
 
//后:
 int c = a * b;
 for (int i = 0; i < 10; i++) {
         i = i * c;
  }

办法九:异样解决写在循环里面
反例

for (int i = 0; i < 10; i++) {
     try {
 
     } catch (Exception e) {
 
     }
}

正例

try {
   for (int i = 0; i < 10; i++) {
   }
} catch (Exception e) {
 
}

以上就是本次分享的全部内容,当初想要学习编程的小伙伴欢送关注Python技术大本营,获取更多技能与教程。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理