You need to enable JavaScript to run this app. Java两种循环写法性能对比:哪一种循环的执行速度更快?
优惠活动
大模型
产品
解决方案
定价
更多

Java两种循环写法性能对比:哪一种循环的执行速度更快?

性能结论

这两种循环写法的运行速度不存在可观测的差异,绝大多数场景下性能完全一致。


底层逻辑说明

Java 即时编译器(JIT)会对代码做逃逸分析和栈空间优化,两种写法里的index本质都是栈上分配的临时变量,生命周期都局限在循环逻辑范围内:

  • 写法1在循环体内声明变量,每次循环的变量都会占用栈帧的固定空间,不会产生额外的创建、销毁开销
  • 写法2把变量声明提到循环外,栈上分配的空间大小和写法1完全相同,没有额外的性能增益

两种写法编译后的字节码几乎没有区别,运行时性能不会有差距。


更建议的优化方案

你给出的两种写法都存在明显的性能浪费:myList.indexOf(key)本身的时间复杂度是O(n),搭配外层O(n)的循环,整体时间复杂度达到了O(n²)。如果你的需求是同时拿到列表的下标和对应元素,完全可以用普通for循环代替增强for循环:

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

这个写法的整体时间复杂度是O(n),列表元素越多,性能优势越明显。

内容的提问来源于stack exchange,提问作者Ziv Sion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 17:36:02