首页 > 编程语言 >Java中遍历方法对比

Java中遍历方法对比

时间:2024-01-21 16:11:57浏览次数:37  
标签:遍历 Java int list System public 循环 java8for 对比

Demo

public class Test {

    public static void main(String[] args) {
        test(10);
        test(100);
        test(1000);
        test(10000);
    }

    public static void test(int size) {
        //1.组装数组
        List<String> list = list(size);
        long nanoTime = System.nanoTime();
        //2.普通for循环
        testFor(list);
        long nanoTime1 = System.nanoTime();
        //3.增强for循环
        testForeach(list);
        long nanoTime2 = System.nanoTime();
        //4.java8for循环
        testJava8forEach(list);
        long nanoTime3 = System.nanoTime();
        System.out.println("普通for循环" + (int) (nanoTime1 - nanoTime) / 1000 + "ms");
        System.out.println("增强for循环" + (int) (nanoTime2 - nanoTime1) / 1000 + "ms");
        System.out.println("java8for循环" + (int) (nanoTime3 - nanoTime2) / 1000 + "ms");
        System.out.println("-------------------------------------------------");
    }

    /**
     * 普通for循环
     *
     * @param list
     */
    public static void testFor(List<String> list) {
        for (int i = 0; i < list.size(); i++) {
            list.get(i).hashCode();
        }
    }

    /**
     * 增强for循环
     *
     * @param list
     */
    public static void testForeach(List<String> list) {
        for (String s : list) {
            s.hashCode();
        }
    }

    /**
     * java8for循环
     *
     * @param list
     */
    public static void testJava8forEach(List<String> list) {
        list.forEach(str -> str.hashCode());
    }

    public static List<String> list(int size) {
        List<String> list = new ArrayList<>();
        for (int i = 0; i < size; i++) {
            list.add(i + "hello world");
        }
        return list;
    }
}

运行输出

普通for循环257ms
增强for循环4948ms
java8for循环378608ms
-------------------------------------------------
普通for循环125ms
增强for循环67ms
java8for循环371ms
-------------------------------------------------
普通for循环363ms
增强for循环530ms
java8for循环601ms
-------------------------------------------------
普通for循环2391ms
增强for循环1719ms
java8for循环1546ms
-------------------------------------------------

标签:遍历,Java,int,list,System,public,循环,java8for,对比
From: https://www.cnblogs.com/leepandar/p/17977958

相关文章

  • javascript中apply的用法
    javascript中apply的用法欧方2023-03-3118:30江苏在JavaScript中,apply方法和call方法类似,都是用于调用一个函数或方法,不同之处在于apply方法接受一个参数数组作为函数的参数列表。apply方法的语法如下:function.apply(thisArg,[argsArray])其中,t......
  • Java实现Excel导入和导出
    目录目录前言1.功能测试1.1测试准备1.2数据导入1.2.1导入解析为JSON1.2.2导入解析为对象(基础)1.2.3 导入解析为对象(字段自动映射)1.2.4导入解析为对象(获取行号)1.2.5导入解析为对象(获取原始数据)1.2.6 导入解析为对象(获取错误提示)1.2.7导入解析为对象(限制字段......
  • Java连接8.0版本以上的数据库
    一.连接数据库在使用Java连接8.0版本以上的数据库时,可以按照如下步骤:下载需要的包,本次教程中使用的是下面这个版本。该驱动网上有许多资源,可根据自己的需求下载。建立与数据库的连接单元在合适的包下新建"DButil.java"文件并输入如下代码:importjava.sql.Connecti......
  • 在Java中连接8.0版本以上的Mysql数据库
    一.连接数据库在使用Java连接8.0版本以上的数据库时,可以按照如下步骤:下载需要的包,本次教程中使用的是下面这个版本。该驱动网上有许多资源,可根据自己的需求下载。建立与数据库的连接单元在合适的包下新建"DButil.java"文件并输入如下代码:importjava.sql.Connecti......
  • Java魔法值有哪些
    Java魔法值有哪些引言在Java编程中,我们经常会遇到一些被称为魔法值(MagicValue)的常量。这些常量通常以数字的形式出现在代码中,但其含义不太明确,使得代码可读性变差。本文将介绍Java魔法值的概念、常见的魔法值以及如何避免使用魔法值。什么是魔法值?魔法值指的是在代码中直接使......
  • Java每7天日志自动清理
    实现Java每7天日志自动清理作为一名经验丰富的开发者,我很高兴能够教会你如何实现Java每7天日志自动清理的功能。在开始之前,让我们先来了解一下整个流程,然后再逐步进行实现。整体流程如下所示:journeytitleJava每7天日志自动清理流程section步骤清理日志文件-......
  • Java将字符串转为list数组
    将字符串转为list数组的实现方法概述在Java开发中,有时候我们需要将一个字符串转换为一个列表数组,以便对其中的元素进行操作和处理。本文将介绍一种常见的实现方法,并提供详细的步骤和示例代码来帮助你完成这个任务。实现步骤下面是实现将字符串转为list数组的一般步骤,你可以按照......
  • Java将json字符串转换为数组的方法
    Java将json字符串转换为数组的方法在Java开发中,经常会遇到将json字符串转换为数组的需求。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,常用于前后端数据传输和存储。而Java中的JSONArray类可以用来处理json数组。下面将介绍一种常用的方法,用于将json字符串转换为......
  • Java架构师英语缩写
    Java架构师英语缩写Java是一种广泛应用于软件开发领域的编程语言,作为一名Java架构师,了解和掌握各种与Java相关的英语缩写是非常重要的。本文将介绍一些常见的Java架构师英语缩写,并附带代码示例进行解释,希望能帮助读者更好地理解和运用这些术语。ORM(ObjectRelationalMapping)ORM......
  • Java获取两个字符串日期的间隔天数
    Java获取两个字符串日期的间隔天数1.概述在Java中,要计算两个字符串日期之间的间隔天数,首先需要将字符串日期转换为java.util.Date对象,然后通过对比两个Date对象的时间戳计算出间隔天数。2.实现步骤步骤描述步骤1将字符串日期转换为java.util.Date对象步骤2获取......