作为程序员每天除了写很多 if else 之外,写的最多的也包含 for 循环了,都知道我们 Java 中常用的 for 循环有两种方式,一种是使用 for loop,另一种是使用 foreach,那如果问你,这两种方式哪一种效率最高,你的回答是什么呢?今天阿粉就来带你看一下。
首先我们先通过代码来实际测试一下,在计算耗时之前我们先创建一个大小集合,然后通过不断的获取集合中的内容来测试耗时。
package com.example.demo; import java.util.ArrayList; import java.util.List; /** * <br> * <b>Function:</b><br> * <b>Author:</b>@author ziyou<br> * <b>Date:</b>2022-06-26 12:22<br> * <b>Desc:</b>无<br> */ public class ForTest { public static void main(String[] args) { //获取一个指定大小的 List 集合 List<Integer> list = getList(1000000); // 开启 for loop 耗时计算 long startFor = System.currentTimeMillis(); for (int i = 0; i < list.size(); i++) { Integer integer = list.get(i); } long costFor = System.currentTimeMillis() - startFor; System.out.println("for loop cost for ArrayList:" + costFor); // forEach 耗时计算 long forEachStartTime = System.currentTimeMillis(); for (Integer integer : list) { } long forEachCost = System.currentTimeMillis() - forEachStartTime; System.out.println("foreach cost for ArrayList:" + forEachCost); } public static List<Integer> getList(int size) { List<Integer> list = new ArrayList<>(); for (int i = 0; i < size; i++) { list.add(i); } return list; } }
简单说明一下上面的带,先创建一个 List ,然后通过两种方式的遍历来计算耗时,根据集合的大小不同,我们进行运行会得到下面的一些测试数据,不同人的机器上面运行的时间会不一定,不过差距应该也不会太大。