代码:

public class main {
public static void main(String[] p_args){
ArrayList<String> _l_string = new ArrayList<>();
for (int o_a = 0; o_a < 100000; o_a++) {
_l_string.add(String.valueOf(o_a));
}
c_public_countTime _countTime = new c_public_countTime();
_countTime.f_begin();
for (int i = 0; i < _l_string.size(); i++) {
System.out.print(_l_string.get(i));
}
String _time_for = _countTime.f_done();
_countTime.f_begin();
for (String o_a :
_l_string) {
System.out.print(o_a);
}
String _time_foreach = _countTime.f_done();
_countTime.f_begin();
for (Iterator<String> o_iterator = _l_string.iterator(); o_iterator.hasNext();) {
System.out.print(o_iterator.next());
}
String _time_iterator = _countTime.f_done(); System.out.println("\niterator:" + _time_iterator + "\nfor:" + _time_for + "\nforeach:" + _time_foreach );
}
}

结果:可能是由于 java 内部执行的原因,不同的顺序造成的时长也各不相同,这里采集了一点数据样本。

(速度、先后顺序、时长)

#2 for:354 毫秒

#1 foreach:263 毫秒

#3 iterator:425 毫秒

小结:for 之后的 foreach 增加了速度。

=

#1 for:285 毫秒

#2 iterator:301 毫秒

#3 foreach:363 毫秒

小结:for 首次出场也获得了最快速度。

===

#3 foreach:517 毫秒

#1 for:285 毫秒

#2 iterator:478 毫秒

小结:foreach 首次出场速度不佳,for 速度跟首次出场速度一致。

=

#3 foreach:416 毫秒

#1 iterator:317 毫秒

#2 for:321 毫秒

小结:即使在 iterator 获得最快速度的时候,for 也有几乎没有差别的速度。

===

#2 iterator:396 毫秒

#3 foreach:415 毫秒

#1 for:253 毫秒

小结:for 在最后出场的时候获得了最快速度。

===

#3 iterator:417 毫秒
#1 for:332 毫秒
#2 foreach:334 毫秒

小结:for 获得了最佳速度。

总结:iterator 和 foreach 并不会提高迭代的速度。所以应该通过必要的理由来使用它们,否则还是默认 for 比较快。

java 测试:iterator foreach for 三种迭代方式哪种更快?的更多相关文章

  1. 细说java中Map的两种迭代方式

    曾经对java中迭代方式总是迷迷糊糊的,今天总算弄懂了.特意的总结了一下.基本是算是理解透彻了. 1.再说Map之前先说下Iterator: Iterator主要用于遍历(即迭代訪问)Collecti ...

  2. 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】

    阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 Session JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总 ...

  3. LVS原理详解(3种工作方式8种调度算法)--老男孩

    一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...

  4. 【java】TreeMap/HashMap的循环迭代中 keySet和entrySet和forEach方式 + map的几种迭代方式

    参考链接:https://www.cnblogs.com/crazyacking/p/5573528.html ================================== java紫色代表迭 ...

  5. LVS三种工作方式八种算法

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...

  6. LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法)

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一 台计算机.集群系统中的单个计 ...

  7. Java 测试并行编程(三)

    有很多其他的交替运行 因为在并行代码中的错误一般是低概率事件.因此,试运行并发差错时需要反复多次,但是,有很多方法可以提高发现这些错误的概率 ,在前面提到的,在多处理器系统.假设 线程的数量,那么 与 ...

  8. 浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序

    在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: function fnMethodName(x){alert(x);} 函数字面量(Function Li ...

  9. LVS原理详解(3种工作方式8种调度算法)

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...

随机推荐

  1. maven实战(01)_搭建开发环境

    一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...

  2. Java对象的深拷贝和浅拷贝、集合的交集并集

    http://blog.csdn.net/lian_1988/article/details/45970927 http://www.cnblogs.com/yxnchinahlj/archive/2 ...

  3. [MySQL]show index from tb_name命令各列的含义

    show index from table_name 这个命令有助于诊断性能低下的查询,尤其是查询是否使用了可用的索引. 下面介绍下 这个命令显示的结果列的含义: | Table | Non_uniq ...

  4. input函数出现的问题(Python)

    参考书<A Learner's Guide to Programming Using the Python Language>,写下如下的程序: # coding=utf-8 # 以上是为 ...

  5. Python实现简单的Web(续)

    写的有点乱..希望大神指教~~Python的缩进可真的将我缠了好久,想起我们班大神说缩进也是代码啊..修改之前的代码来显示请求的信息,同时重新整理一下代码: class RequestHandler( ...

  6. Http请求中请求头Content-Type 为 form-data、x-www-form-urlencoded、raw、binary的区别

    参考文献:http://blog.csdn.net/ye1992/article/details/49998511

  7. ***IT程序员自我修养和情商提升文章

    低情商的13个表现 --------------------------------------------------------------------- — THE END —

  8. css sprite,css雪碧图生成工具V3.0更新

    V3.0主要改进 1.增加了单独添加单张图片以及删除单张图片的功能 2.增加了生成.sprite文件用以保存雪碧图信息 3.增加了打开.sprite文件功能 什么是css sprite CSS spr ...

  9. TDD学习笔记【一】----序言

    提到TDD大多数程序员的疑问: 为什么我要写两份程序? 为什么我要写程序来验证我已经知道的结果? 我又不是SA,可能也不懂domain,怎么产生一开始的test case? 最后的感想就变成是: 1. ...

  10. HTML5 五子棋 - JS/Canvas 游戏

    背景介绍 因为之前用c#的winform中的gdi+,java图形包做过五子棋,所以做这个逻辑思路也就驾轻就熟,然而最近想温故html5的canvas绘图功能(公司一般不用这些),所以做了个五子棋,当 ...