我是靠谱客的博主 无限战斗机,最近开发中收集的这篇文章主要介绍java迭代器和for循环,迭代器和For循环的效率比较 | 学步园,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

昨儿晚上宿舍讨论到迭代器的问题,今天有时间我就写了个小东西看了看两者的效率差别。发现效率差的还真大。

先上代码。代码很简单。

主程序测试类:TestArrayList.java

package com.test.arrayList;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class TestArrayList {

private static final int COUNT =700000;

private static List persons = new ArrayList();

public static void main(String args[]) {

init();

System.out.println("For遍历测试:" + testFor()+ "微秒");

System.out.println("迭代器遍历测试:" +testIterator()+ "微秒");

System.out.println("有人很喜欢的foreach测试:" +testForEach()+ "微秒");

}

public static void init() {

Person person = null;

for (int i = 0; i < COUNT; i++) {

person = new Person("第" + i + "个", i, i * 100);

persons.add(person);

}

}

public static long testIterator() {

long start = System.nanoTime();

Person person = null;

for (Iterator it = persons.iterator(); it.hasNext();) {

person = it.next();

}

return (System.nanoTime() - start) / (1000);

}

public static long testFor() {

long start = System.nanoTime();

Person person = null;

for (int i = 0; i < persons.size(); i++) {

person = persons.get(i);

}

return (System.nanoTime() - start) / (1000);

}

public static long testForEach() {

long start = System.nanoTime();

Person person = null;

for (Person p : persons) {

person = p;

}

return (System.nanoTime() - start) / (1000);

}

}

实体Person类。放到容器里面的。

Person.java

package com.test.arrayList;

public class Person {

private String name;

private int age;

private double money;

public Person(String name, int age, double money) {

this.name = name;

this.age = age;

this.money = money;

}

getter();

setter();

}

开始测试:

结果附上图:

0_1332156879x3ck.gif

看到差别了吧。上面的测试是万级别的测试。一般效率影响不大。

要多说的是foreach效率和迭代器效率差不多。

最后

以上就是无限战斗机为你收集整理的java迭代器和for循环,迭代器和For循环的效率比较 | 学步园的全部内容,希望文章能够帮你解决java迭代器和for循环,迭代器和For循环的效率比较 | 学步园所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部