list集合的遍歷3種方法


  1. package com.sort;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.Iterator;  
  5. import java.util.List;  
  6.   
  7. /** 
  8.  * list的三種遍歷 
  9.  * 
  10.  */  
  11. public class ListTest {  
  12.   
  13.     public static void main(String[] args) {  
  14.           
  15.         List<String> list = new ArrayList<String>();  
  16.           
  17.         list.add("a");  
  18.         list.add("b");  
  19.         list.add("c");  
  20.         list.add("c");//可添加重復數據  
  21.           
  22.         //遍歷方法一  
  23.         for(Iterator<String> iterator = list.iterator();iterator.hasNext();){  
  24.             String value = iterator.next();  
  25.               
  26.             System.out.println(value);  
  27.         }  
  28.           
  29.         //遍歷方法二  
  30.         for(String value : list){  
  31.             System.out.println(value);  
  32.         }  
  33.           
  34.         //遍歷方法三  
  35.         for(int i=0;i<list.size();i++){  
  36.             System.out.println(list.get(i));  
  37.         }  
  38.           
  39.     }  
  40. }  


三種遍歷的比較分析:

 

 

方法一遍歷:

執行過程中會進行數據鎖定,    性能稍差,    同時,如果你想在循環過程中去掉某個元素,只能調用it.remove方法。   

 

方法二遍歷:

內部調用第一種

 

方法三遍歷:

內部不鎖定,    效率最高,    但是當寫多線程時要考慮並發操作的問題

 

List接口的兩種主要實現類ArrayList和LinkedList都可以采用這樣的方法遍歷

 

關於ArrayList與LinkedList的比較分析
a) ArrayList底層采用數組實現,LinkedList底層采用雙向鏈表實現。
b) 當執行插入或者刪除操作時,采用LinkedList比較好。
c) 當執行搜索操作時,采用ArrayList比較好。

 

 

說白了,就是數據結構中的順序存儲和鏈式存儲


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM