java中for与foreach的差距

foreach虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改,而for循环可以在遍历的过程中对源数组或者集合进行修改。

  1. public class Main {  
  2.       
  3.     public static void main(String[] args){  
  4.         //实例化arrayList  
  5.         List<Integer> arrayList = new ArrayList<Integer>();  
  6.         //实例化linkList  
  7.         List<Integer> linkList = new LinkedList<Integer>();  
  8.       
  9.         //插入10万条数据  
  10.         for (int i = 0; i < 100000; i++) {  
  11.             arrayList.add(i);  
  12.             linkList.add(i);  
  13.         }  
  14.           
  15.         int array = 0;  
  16.         //用for循环arrayList  
  17.         long arrayForStartTime = System.currentTimeMillis();  
  18.         for (int i = 0; i < arrayList.size(); i++) {  
  19.             array = arrayList.get(i);  
  20.         }  
  21.         long arrayForEndTime = System.currentTimeMillis();  
  22.         System.out.println("用for循环arrayList 10万次花费时间:" + (arrayForEndTime - arrayForStartTime) + "毫秒");  
  23.           
  24.         //用foreach循环arrayList  
  25.         long arrayForeachStartTime = System.currentTimeMillis();  
  26.         for(Integer in : arrayList){  
  27.             array = in;  
  28.         }  
  29.         long arrayForeachEndTime = System.currentTimeMillis();  
  30.         System.out.println("用foreach循环arrayList 10万次花费时间:" + (arrayForeachEndTime - arrayForeachStartTime ) + "毫秒");  
  31.           
  32.         //用for循环linkList  
  33.         long linkForStartTime = System.currentTimeMillis();  
  34.         int link = 0;  
  35.         for (int i = 0; i < linkList.size(); i++) {  
  36.             link = linkList.get(i);  
  37.         }  
  38.         long linkForEndTime = System.currentTimeMillis();  
  39.         System.out.println("用for循环linkList 10万次花费时间:" + (linkForEndTime - linkForStartTime) + "毫秒");  
  40.           
  41.         //用froeach循环linkList  
  42.         long linkForeachStartTime = System.currentTimeMillis();  
  43.         for(Integer in : linkList){  
  44.             link = in;  
  45.         }  
  46.         long linkForeachEndTime = System.currentTimeMillis();  
  47.         System.out.println("用foreach循环linkList 10万次花费时间:" + (linkForeachEndTime - linkForeachStartTime ) + "毫秒");  
  48.     }  
for与foreach在时间上的差距,即性能

猜你喜欢

转载自blog.csdn.net/qq_36983118/article/details/79902783
今日推荐