当前位置: 首页 > news >正文

购买网站设计制作浏览器下载安装2023版本

购买网站设计制作,浏览器下载安装2023版本,做装修的网站,辽宁建设工程信息网官网首页日常开发中,经常会遇到一些循环耗时计算的操作,一般也都会采用 for 循环来处理,for 作为编程入门基础,主要是处理重复的计算操作,虽然简单好用,但在写法上也有很多的考究,如果处理不好&#xff…

日常开发中,经常会遇到一些循环耗时计算的操作,一般也都会采用 for 循环来处理,for 作为编程入门基础,主要是处理重复的计算操作,虽然简单好用,但在写法上也有很多的考究,如果处理不好,可能成为拖垮程序的罪魁祸首,下面总结 10 多条 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));
}

  • 优点:不必每次都计算

  • 缺点:

    1. m的作用域不够小,违反了最小作用域原则

    2. 不能在for循环中操作list的大小,比如除去或新加一个元素

方式三:数组长度提取出来 

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

  • 优点:不必每次都计算 ,变量的作用域遵循最小范围原则

  • 缺点:

    1. m的作用域不够小,违反了最小作用域原则

    2. 不能在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);
}

  • 优点:简洁结合泛型使用更简洁

  • 缺点:

    1. jdk1.4向下不兼容

    2. 无法直接拿到索引

 方式七:循环嵌套外小内大原则

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) {
}

不过这种写法也不是绝对,需要考虑循环过程中如果出现异常是否要中止流程,如果不需要中止循环,就需要将异常处理放在循环体内,用来捕获单次循环出现的异常,避免因为单词异常导致整个for循环后续中止

方式十:倒序删除

如果不使用迭代器遍历删除时,可以采用倒叙的方式遍历删除元素,避免因为索引变化导致异常

for (int i = list.size()-1; i >= 0; i--) {
    // 循环体
    list.remove(i);
}

优化后的代码:

for (int i = list.size()-1; i >= 0; i--) {
    // 循环体
    list.remove(i);
}

方式十一:减少方法调用

在循环体内部尽可能减少方法的调用,可以避免重复的方法调用开销。对于频繁调用的方法,可以将结果缓存起来。

int size = list.size();
for (int i = 0; i < size; i++) {
    // 频繁调用的方法
    // 这部分调用和当前的循环没有直接性关系,就可以不放在循环体内
    int result = calculateResult();
    // 循环体
}

优化后的代码:

int size = list.size();
int result = calculateResult();
for (int i = 0; i < size; i++) {
    // 使用缓存的结果
    // 循环体
}

以上是一些常见的for循环,很多都是一些不起眼的小细节,改或不改都不会影响代码的正常执行,但用户多了之后,众多小问题累积起来可能就影响到整个系统的运行,所以,需要在日常开发中多注意这些小细节,避免日后再来还技术债...

http://www.khdw.cn/news/35684.html

相关文章:

  • 做贷款的网站有哪些如何分步骤开展seo工作
  • 二次开发公司seo点击器
  • 山西新闻头条最新消息苏州网站建设优化
  • 哈尔滨建站免费模板网络营销相关的岗位有哪些
  • 淳安县建设网站手机创建网站免费注册
  • 做暧网站seo如何提高网站排名
  • wordpress 主题网站seo排名公司
  • 爱建站小程序功能介绍怎样在百度上做广告
  • 微信开发者工具是干嘛的网站人多怎么优化
  • 在哪个网站上可以找兼职做产品经理培训哪个机构好
  • 邯郸网站设计费用百度信息流
  • 做网站头部为什么很多代码微信公众号推广2元一个
  • 网站滚动图片怎么做旅游景点推广软文
  • 合肥高端网站建设cnfg星巴克seo网络推广
  • 社交网站可以做亚马逊联盟吗武汉seo托管公司
  • 禹州市城乡建设局网站seo的基本工作内容
  • 江西网站建设合肥网站优化推广方案
  • 怎么在国外网站做推广女生做sem专员的工作难吗
  • wordpress博客登陆百度seo怎么做
  • 关于政府网站建设建议成都seo的方法
  • 如何去掉wordpress文章标题与内容之间的日期和作者长春关键词优化排名
  • 单位做网站资料需要什么软件最好用的搜索引擎
  • 中国企业500强标准网站seo主要是做什么的
  • 设计logo网站推荐seo培训学什么
  • 文化馆网站数字化建设介绍平台app如何推广
  • 政府网站制作建设百度搜索引擎排名规则
  • 网站开发源代码修改石家庄百度搜索引擎优化
  • 做棋牌开发的网站seo推广公司教程
  • 淘宝客网站开发平台优化一个网站需要多少钱
  • 成都私人做网站网络营销八大工具