亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中List集合的遍歷實例詳解

 更新時間:2019年04月24日 11:24:18   作者:QH_JAVA  
這篇文章主要介紹了Java中List集合遍歷實例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

 一、對List的遍歷有三種方式  

 List<String>  list  =  new  ArrayList<String>();  
  list.add("testone");  
  list.add(“testtwo”);  
  ...  

第一種:

for(Iterator<String>  it  =  list.iterator();  it.hasNext();  )  {  
    ....  
  } 

這種方式在循環(huán)執(zhí)行過程中會進(jìn)行數(shù)據(jù)鎖定,    性能稍差,    同時,如果你想在尋歡過程中去掉某個元素,只能調(diào)用it.remove方法,    不能使用list.remove方法,    否則一定出現(xiàn)并發(fā)訪問的錯誤.   

第二種:  

 for(String  data  :  list)  {  
    .....  
  } 

內(nèi)部調(diào)用第一種,    換湯不換藥,  因此比Iterator 慢,這種循環(huán)方式還有其他限制, 不建議使用它。

第三種:  

 for(int  i=0;  i<list.size();  i++)  {  
    A  a  =  list.get(i);  
    ...  
  }  

內(nèi)部不鎖定,    效率最高,    但是當(dāng)寫多線程時要考慮并發(fā)操作的問題。

二、測試實例

package com.inspur.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

/**
 *@author WHD
 *2015-3-5
 */
@SuppressWarnings("unused")
public class MapTest {
    private static List<String> list= new ArrayList<String>();
    public static void main(String[]args){
        MapTest  mapTest = new  MapTest();
        mapTest.initList(list);
        mapTest.foreach(list);
        mapTest.forlist(list);
        mapTest.iteratorList(list);
    }
    
    //list 集合中添加10萬條數(shù)據(jù)
    public List initList(List<String> list){
        int i=0;
        int num=6000000;
        for(i=0;i<num;i++){
            list.add("list"+i);
        }
        return list;
    }
    //list 集合遍歷 foreach
    
    public void  foreach(List<String> list){
        long start= System.currentTimeMillis();
        for(String data:list){
            String value=data;
        }
        
        long end=System.currentTimeMillis();
        long count=end-start;
        System.out.println("foreach 循環(huán)時間"+count);
    }
    // list集合遍歷  for
    public void forlist(List<String> list){
        long start=System.currentTimeMillis();
        int i=0;
        for( i=0;i<list.size();i++){
            String value=list.get(i);
        }
        long end=System.currentTimeMillis();
        long count=end-start;
        System.out.println("for list.size() 遍歷時間"+count);
    }
    
    // Iterator 遍歷循環(huán)
    public void iteratorList(List<String> list){
        long start= System.currentTimeMillis();
        for(Iterator<String>  it=list.iterator();it.hasNext();){
            String value=it.next();
        }
        long end=System.currentTimeMillis();
        long count=end-start;
        System.out.println("iterator 遍歷時間"+count);
    }

}


三、測試結(jié)果:

(1)、第一次

foreach  遍歷時間:55
for list.size()遍歷時間:47
iterator 遍歷時間:51

(2)、第二次

foreach  遍歷時間:54
for list.size()遍歷時間:44
iterator 遍歷時間:50

(3)、第三次

foreach  遍歷時間:48
for list.size()遍歷時間:43
iterator 遍歷時間:44

從測試的結(jié)果我們可以明顯的看到效率了!

以上所述是小編給大家介紹的Java中List集合遍歷詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論