我是靠谱客的博主 真实大树,这篇文章主要介绍增强 for 循环 和 普通for 循环的 区别总结,现在分享给大家,希望可以做个参考。

增强 for () {} 一般用于链表

如果用数组实现的,那最好用普通for循环,因为下标索引速度更快。增强型的for循环,其实是用iterator迭代器来做的,迭代器适合链表格式的存储结构。

所以,公司里很多人的代码都不规范,或者没有考虑效率问题,只是单纯的完成系统功能,这是很不负责任的做法。为一个公司做事,就要把代码优化到最好,比如用普通型for循环,我们可以先在第一步算出集合的大小,这样就省去了每次都要计算集合大小。

** int size =arraylist.size(); for(int i=0;i<size;i++)**
这样做,就提高了代码的效率了。

写了一段代码来印证自己的理论:

复制代码
1
2
3
4
5
package com.netease.corp; import java.util.ArrayList; import java.util.LinkedList; import java.util.List;

public class ForIterator {
private static long MAX_NUMBER=100000;

复制代码
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) { List<Integer> linkedList=new LinkedList<Integer>(); List<Integer> arrayList=new ArrayList<Integer>(); for(int i=0;i<MAX_NUMBER;i++){ //给两个list赋值 linkedList.add(100); arrayList.add(100); } getForCirculationTime(linkedList); getForCirculationTime(arrayList);

}

/**

  • 方法功能:获取两种for循环的时间

  • @param lists
    */
    public static void getForCirculationTime(List lists){
    long starTime=System.currentTimeMillis();
    int n=0;
    int size=lists.size();
    for(int i=0;i<size;i++){
    n=lists.get(i);
    }
    Class s =lists.getClass(); //获取class的名
    String name=s.getName();
    System.out.println(s+“普通for循环 调用get方法花的时间:”+(System.currentTimeMillis()-starTime));

    starTime=System.currentTimeMillis();
    for(int in:lists){
    n=in;
    }
    System.out.println(s+“增强型的for循环get方法花的时间:”+(System.currentTimeMillis()-starTime));
    System.out.println();
    }
    }

复制代码
1
2
3
4
5
6
class java.util.LinkedList普通for循环 调用get方法花的时间:4471 class java.util.LinkedList增强型的for循环get方法花的时间:2 class java.util.ArrayList普通for循环 调用get方法花的时间:8 class java.util.ArrayList增强型的for循环get方法花的时间:8

最后

以上就是真实大树最近收集整理的关于增强 for 循环 和 普通for 循环的 区别总结的全部内容,更多相关增强内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部