概述
增强 for () {} 一般用于链表
如果用数组实现的,那最好用普通for循环,因为下标索引速度更快。增强型的for循环,其实是用iterator迭代器来做的,迭代器适合链表格式的存储结构。
所以,公司里很多人的代码都不规范,或者没有考虑效率问题,只是单纯的完成系统功能,这是很不负责任的做法。为一个公司做事,就要把代码优化到最好,比如用普通型for循环,我们可以先在第一步算出集合的大小,这样就省去了每次都要计算集合大小。
** int size =arraylist.size(); for(int i=0;i<size;i++)**
这样做,就提高了代码的效率了。
写了一段代码来印证自己的理论:
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;
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();
}
}
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 循环的 区别总结的全部内容,希望文章能够帮你解决增强 for 循环 和 普通for 循环的 区别总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复