博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java遍历List5种方法的效率对比
阅读量:4512 次
发布时间:2019-06-08

本文共 1899 字,大约阅读时间需要 6 分钟。

 

 

package com.test;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * @author tzq * @date 2019-03-13 16:48 */public class Test {    //公共变量    int count=0;    static  List
list = new ArrayList<>(); public static void main(String[] args) throws Exception{ //new一个实现Runnable的类 Test test=new Test(); //创建1个任务 MyRunnable myRunnable1=test.new MyRunnable(); //创建5个线程 for(int i=0;i<99;i++){ Thread t = new Thread(myRunnable1); t.start(); t.join(); } System.out.println("线程结束"); System.out.println(list.size()); long s1=System.nanoTime(); for (Integer i :list){ } System.out.println("foreach程序耗时:"+(System.nanoTime()-s1)+" ms"); long s2=System.nanoTime(); Iterator iter = list.iterator(); while(iter.hasNext()){ Object o = iter.next(); } System.out.println("Iterator程序耗时:"+(System.nanoTime()-s2)+" ms"); long s3=System.nanoTime(); int size = list.size(); for(int i=0;i
{ Object o= x; }); System.out.println("stream程序耗时:"+(System.nanoTime()-s5)+" ms"); } //创建一个实现Runnable的类 class MyRunnable implements Runnable{ public void run() { while(true){ //锁住的是同一对象 synchronized(this){ if(count>=1000000){ break; } list.add(count); System.out.println(Thread.currentThread().getName()+":count:"+(++count)); //测试时,线程更容易切换 Thread.yield(); } } } }}

foreach程序耗时:27658646 ms

Iterator程序耗时:12158150 ms
for程序耗时:7618257 ms
for程序耗时:7031677 ms
stream程序耗时:101515437 ms

 

转载于:https://www.cnblogs.com/mytzq/p/10524730.html

你可能感兴趣的文章
线段树
查看>>
SharePoint2010联合搜索——Google、百度
查看>>
php静态
查看>>
python基础之文件操作
查看>>
在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因...
查看>>
个人github链接及git学习心得总结
查看>>
c++ 计算器 带括号 代码实现
查看>>
objective -c初写
查看>>
C#中如何设置窗体的默认按钮和取消按钮
查看>>
[Swift]LeetCode276. 粉刷栅栏 $ Paint Fence
查看>>
[Swift]LeetCode351. 安卓解锁模式 $ Android Unlock Patterns
查看>>
break语句和continue语句
查看>>
java代码中添加log4j日志
查看>>
Java学习不走弯路教程(19 对于Service的自动注入)
查看>>
[CSS3] :empty Selector
查看>>
webpack4 入门(二)
查看>>
vim配置成c++IDE
查看>>
利用node搭建本地服务器
查看>>
python pickle命令执行与marshal 任意代码执行
查看>>
Elasticsearch 2.3 java api
查看>>