Java中List集合的遍历
来源:互联网 发布:软件研发管理工具 编辑:程序博客网 时间:2024/04/30 05:42
核心
1、Java中list集合遍历的方法有
2、3种方法的实现过程
3、基于这3种方法的测试
第一种:
while(it.hasNext()){ String value=(String) it.next(); }
这种方式在循环执行过程中会进行数据锁定, 性能稍差, 同时,如果你想在寻欢过程中去掉某个元素,只能调用it.remove方法, 不能使用list.remove方法, 否则一定出现并发访问的错误.
第二种:
for(String ls:list){ String value=ls; }
内部调用第一种, 换汤不换药, 因此比Iterator 慢,这种循环方式还有其他限制, 不建议使用它。
第三种:
for(int i=0;i<list.size();i++){ String value=list.get(i); }
内部不锁定, 效率最高, 但是当写多线程时要考虑并发操作的问题。
2、代码实现
package Sort;import java.util.ArrayList;import java.util.List;import java.util.Iterator;public class ForList { private static List<String> list =new ArrayList<String>(); public static void main(String[] args) { int num=1000,data=10000000; long iterator=0,forls = 0,forsz=0; ForList ls=new ForList(); ls.getList(data); System.out.println("序号|数值|Iterator|forlist|forsize"); for(int i=1;i<=num;i++){ Runtime.getRuntime().gc(); iterator=ls.IteratorList(); forls=ls.forlist(); forsz=ls.forsize(); System.out.println(i+"|"+data+"|"+iterator+"|"+forls+"|"+forsz); } } public void getList(int num){ for (int i=0;i<num;i++){ list.add("list"+i); } } public long IteratorList(){ Runtime.getRuntime().gc(); long start=System.currentTimeMillis(); Iterator it=list.iterator(); while(it.hasNext()){ String value=(String) it.next(); } long end=System.currentTimeMillis(); return end-start; } public long forsize(){ Runtime.getRuntime().gc(); long start=System.currentTimeMillis(); for(int i=0;i<list.size();i++){ String value=list.get(i); } long end=System.currentTimeMillis(); return end-start; } public long forlist(){ Runtime.getRuntime().gc(); long start=System.currentTimeMillis(); for(String ls:list){ String value=ls; } long end=System.currentTimeMillis(); return end-start; }}
3、方法测试和比对
1、基于整形的list进行了100次遍历,得到的结论是,forsize这个方法比其他2个方法的平均值要小,其方差值也要小
2、基于String类型的list进行了100次遍历,得到的结论是,forsize这个方法比其他2个方法的平均值要小,其方差值也要小
阅读全文
0 0
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中List集合的遍历
- Java中Map集合和List集合的遍历方式
- Java List集合的遍历
- Java中List集合的四中遍历方式
- java中List对象集合的遍历方法
- java中List、Set、Map集合的遍历方法总结
- 如何在java中实现List集合的遍历
- Java集合框架中Set、List、Map的遍历方法
- 《未来简史》作者访谈观点摘要
- 创建对象和继承
- #7 Loading/Error 子状态
- SpringBoot JavaMailSender发送邮件(QQ和163邮箱)
- 机器学习实战:朴素贝叶斯分类(一)
- Java中List集合的遍历
- CSS中的绝对定位与相对定位
- Google Chrome v59.0.3071.104
- CSS 绝对定位
- k数和
- 网络服务端口
- [LeetCode]576. Out of Boundary Paths
- Java之多继承
- “迷信”或是超前科学:朱清时谈量子