首页 > 编程 > Java > 正文

Java中List集合的遍历实例详解

2019-11-26 09:03:45
字体:
来源:转载
供稿:网友

 一、对List的遍历有三种方式  

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

第一种:

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

这种方式在循环执行过程中会进行数据锁定,    性能稍差,    同时,如果你想在寻欢过程中去掉某个元素,只能调用it.remove方法,    不能使用list.remove方法,    否则一定出现并发访问的错误.   

第二种:  

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

内部调用第一种,    换汤不换药,  因此比Iterator 慢,这种循环方式还有其他限制, 不建议使用它。

第三种:  

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

内部不锁定,    效率最高,    但是当写多线程时要考虑并发操作的问题。

二、测试实例

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万条数据    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 循环时间"+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 遍历循环    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);    }}

三、测试结果:

(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

从测试的结果我们可以明显的看到效率了!

以上所述是小编给大家介绍的Java中List集合遍历详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表