1. 程式人生 > >java中List的遍歷

java中List的遍歷

import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.List; 

public class ListTest { 
 public static void main(String[] args) {  
 List<Integer> list = new ArrayList<Integer>();  
 list.add(1);  
 list.add(2);  
 list.add(3);  
 for (Iterator i = list.iterator(); i.hasNext();) {

 System.out.println(i.next());
 }

        for(Integer i : list){ 
            System.out.println(i); 
        }

        for (Iterator<Integer> i = list.iterator(); i.hasNext();) { 
            Integer integerRef = i.next(); 
            System.out.println(integerRef); 
        }   

 } 


對List的遍歷有三種方式   
    
   List<A>    list    =    new    ArrayList<A>();   
   list.add(new    A());   
   list.add(new    A());   
   ...   
    
   第一種:   
   for(Iterator<A>    it    =    list.iterator();    it.hasNext();    )    {   
       ....   
   }   
   這種方式在迴圈

 執行過程中會進行資料鎖定,  效能稍差,  同時,如果你想在迴圈過程中去掉某個元素,只能呼叫it.remove方法,  不能使用list.remove方法,  否則一定出併發訪問的錯誤. 

 第二種: 
 for(A  a  :  list)  { 
 ..... 
 } 
 內部呼叫第一種,  換湯不換藥,  這種迴圈方式還有其他限制,  不建議使用它 

 第三種: 
 for(int  i=0;  i<list.size();  i++)  { 
 A  a  =  list.get(i); 
 ... 
 } 
 內部不鎖定,  效率最高,  但是當寫多執行緒時要考慮併發操作的問題!