java的遍历数组效率测试源码

Java List遍历性能测试
本文通过三种不同的遍历方式对比了Java中List集合的访问性能,并得出了不同方法的效率排名:直接使用索引访问元素的方式最快,迭代器次之,foreach循环最慢。
package javatest;

import java.util.ArrayList;

import java.util.Iterator;
import java.util.List;

public class javatest {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		long t1,t2;
		for(int j = 0; j < 10000000; j++){
			list.add("aaaaaabbbbbbbcccccccc");
		}
		//==================== 方式 1 =========================
		t1=System.currentTimeMillis();
		for(String tmp:list){
			//System.out.println(tmp);
		}
		t2=System.currentTimeMillis();
		System.out.println("List first visit method Run Time:" + (t2 -t1) + "(ms)");
		//==================== 方式 2 =========================
		t1=System.currentTimeMillis();
		for(int i = 0; i < list.size(); i++){
			list.get(i);
			//System.out.println(list.get(i));
		}
		t2=System.currentTimeMillis();
		System.out.println("List second visit method Run Time:" + (t2 -t1) + "(ms)");
		//===================== 方式 3 ========================
		Iterator<String> iter = list.iterator();
		t1=System.currentTimeMillis();
		while(iter.hasNext()){
			iter.next();
			//System.out.println(iter.next());
		}
		t2=System.currentTimeMillis();
		System.out.println("List Third visit method Run Time:" + (t2 -t1) + "(ms)");	
	}
}

运行结果:


不是每次都是一样的,总体效率是:方式2 > 方式3 > 方式1

### 历数的概念 历数是指按照某种顺序访问数中的每一个元素并对其进行操作的过程。不同的编程语言提供了多种方式来实现这一功能,常见的有 `for` 循环、`for...each` 循环以及特定于某些语言的方法如 JavaScript 的 `forEach()`。 #### 使用普通 `for` 循环历数 在许多编程语言中,最基础的方式是使用普通的 `for` 循环。这种方式允许开发者精确控制循环的起始条件、终止条件和每次迭代的变化量。例如,在JavaScript中可以这样写: ```javascript let arr = [1, 2, 3]; for(let i = 0; i < arr.length; i++) { console.log(arr[i]); } ``` 这种方法适用于几乎所有支持标准结构化程序设计的语言[^1]。 #### Java 中的增强型 `for-each` 循环 对于像Java这样的强类型语言来说,“增强型”的 `for-each` 循环提供了一种更简洁的方式来历集合或者数的数据项而无需显式地处理索引变量。下面是一个简单的例子展示了如何利用这种特性去打印整数类型的数内容: ```java public class Example { public static void main(String[] args){ int[] numbers = {1, 2, 3}; for(int num : numbers){ System.out.println(num); } } } ``` 此代码片段清晰表明了当只需要逐一获取容器内的成员而不关心其位置时,采用 foreach 可让源码更加易读且减少错误几率[^2]。 #### 利用 JavaScript 的 `forEach` 方法 除了传统的循环语句外,现代脚本语言通常还内置了一些专门用于数据集操作的功能函数。比如在JS里头就有非常实用又直观好记的 Array.prototype.forEach() API 。它接受一个作为参数传入的回调函数,并依次对该数对象里的每一项执行该匿名/命名函数体内部定义的操作逻辑直到完成整个序列扫描为止;值得注意的是这个过程不会改变原始列表本身也不会产生新的结果副本出来——即所谓的副作用免疫模式。 这里有一个具体的实例演示怎样借助上述机制枚举字符串颜色名称的同时附加它们各自的下标编号信息到浏览器调试台上去查看效果: ```html <script> const colors = ["Red", "Green", "Blue"]; colors.forEach((color, idx) => { console.log(`Index ${idx}: Color is "${color}"`); }); </script> ``` 以上三种技术代表了几类不同风格但目的相同的解决方案路径[^3]。 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值