首页 > 其他分享 >常见的for循环优化方式

常见的for循环优化方式

时间:2023-06-03 21:34:27浏览次数:35  
标签:作用域 常见 list System int 循环 优化 size

?> 前言

经常使用一些循环,进行耗时计算的操作,特别是 for 循环,它是一种重复计算的操作,如果处理不好,耗时就比较大,如果处理书写得当,将大大提高效率,下面总结几条 for 循环的常见优化方式。

首先初始化一个集合 list,如下:

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

方式一:最常规的不加思考的写法

for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}
  • 优点:较常见,易于理解
  • 缺点:每次都要计算 list.size()

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

int size = list.size();

for (int i = 0; i < size; i++) {
    System.out.println(list.get(i));
}
  • 优点:不必每次都计算 list.size()
  • 缺点:
  • size 的作用域不够小,违反了最小作用域原则
  • 不能在 for 循环中操作 list 的大小,比如除去或新加一个元素

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

for (int i = 0, size = list.size(); i < size; i++) {
    System.out.println(list.get(i));
}
  • 优点:不必每次都计算,变量的作用域遵循最小范围原则
  • 缺点:
  • size 的作用域不够小,违反了最小作用域原则
  • 不能在 for 循环中操作 list 的大小,比如除去或新加一个元素



标签:作用域,常见,list,System,int,循环,优化,size
From: https://blog.51cto.com/u_15652665/6408723

相关文章

  • 如何用C语言做一个扫雷游戏(包含展开优化)
    老一套做一个简易的游戏菜单,并且完善他的功能,选一开始游戏,选0退出游戏,超出就重选。目录做完开始实现游戏内容,先做一个棋盘来放我们的雷和我们排查雷的情况,但是在一个棋盘上既要放雷,又要来存放我们排查的雷,完成起来就很乱,那么我们是不是就可以做两个棋盘,一个来专门放雷,一个专门来放......
  • Windows server 2022 常见 备份事项
    以下是WindowsServer2022的DNS备份批处理脚本示例:CopyCode@echooffsetlocalrem定义备份路径setbackupPath=c:\dns_backup\rem获取当前日期时间作为备份文件名for/f"tokens=1-3delims=/"%%ain('date/t')doset"datestamp=%%a-%%b-%%c"for/f&q......
  • 《面试1v1》Spring循环依赖
    我是javapub,一名Markdown程序员从......
  • 有许多UPnP软件可供选择,以下是一些常见的UPnP软件
    UPnP是通用即插即用(UniversalPlugandPlay)的缩写,它是一种网络协议,可以让设备在网络中自动发现和连接到其他设备,从而实现设备间的互联和数据共享。UPnP最初是由微软等公司推出的,它的主要功能是允许设备自动进行端口映射,从而实现网络服务的远程访问。UPnP协议还支持设备控制、事件......
  • 在 Windows 7 安装过程中,如果需要注入驱动程序,则可以使用一些注入驱动工具。以下是一
    在Windows7安装过程中,如果需要注入驱动程序,则可以使用一些注入驱动工具。以下是一些常见的Windows7镜像注入驱动工具:DISM(DeploymentImageServicingandManagement)工具:它是Windows操作系统自带的镜像注入工具,可以向新安装的Windows7映像添加驱动程序或其他更新......
  • elementUI中<el-select>下拉框选项过多的页面优化方案——多列选择
    效果展示(多列可以配置)  一、icon下拉框的多列选择:  二、常规、通用下拉框的多列选择:【注】第二种常规、通用下拉框的多列选择,是在第一种的前端代码上删除几行代码就行(把icon显示标签删去),所以下面着重介绍第一种icon下拉框的多列选择。思路  不使用下拉框标签<el-option>......
  • 【花雕学AI】ChatGPT的四大语言处理神器:文本生成、问答、创意生成和内容优化的技巧和
    引言:ChatGPT是一个人工智能聊天机器人,它可以理解和交流多种语言,例如中文、英文、日文、西班牙语、法语、德语等。它是由OpenAI开发的,基于GPT-3.5和GPT-4这两个大型语言模型。它不仅可以与用户进行对话,还可以根据用户的指示完成一些语言处理的任务,例如文本生成、问答、创意生成和内......
  • 初级数据结构--双链表、循环链表
    双链表结构体内含有两个指针域。相比单链表,双链表每个节点多了一个存储前一节点的指针。对节点的增加、删除操作比单链表便捷,不用独立指针记录前一节点voidInitDNodeList(DNode**D){ *D=(DNode*)malloc(sizeof(DNode)); if(!*D) return; (*D)->front=NULL; (*D)->nex......
  • 3、Ansible高级功能--loop、until循环,with_lines逐行处理,条件判断when等
    ansible的高级功能1、loop循环迭代:当有需要重复性执行的任务时,可以使用迭代机制范例:初始化安装软件包----hosts:webserversremote_user:roottasks-name:installsomepackagesyum:name={{item}}state=presentwith_items:......
  • 四边形不等式优化dp
    对于转移方程\(c(i,j)=w(i,j)+\min_d(c(i,d)+c(d+1,j))\),存在\(w(i,j)+w(i',j')\lew(i,j')+w(i',j)(i\lei'\lej\lej'\)如何快速求其答案。引理一:\(w(i,j)+w(i',j')\lew(i,j')+w(i',j)\)则\(c(i,j)+c(i',j')......