java list for循环_Java List遍历的3种方法
Java List遍历的3种方法
1. Iterator遍历list集合
List list=new ArrayList();
list.add("java1");
list.add("java2");
list.add("java3");
for(Iteratorit = list.iterator(); it.hasNext(); )
{
....
}
这种方式在循环执行过程中会进行数据锁定, 性能稍差, 同时,如果你想在寻欢过程中去掉某个元素,只能调用it.remove方法, 不能使用list.remove方法, 否则一定出现并发访问的错误.
2. for循环遍历
List list=new ArrayList();
list.add("java1");
list.add("java2");
list.add("java3");
for(String data : list)
{
....
}
比Iterator 慢,这种循环方式还有其他限制, 不建议使用它。
3. for循环另外一种方法遍历
List list=new ArrayList();
list.add("java1");
list.add("java2");
list.add("java3");
for(int i=0; i
{
....
}
内部不锁定, 效率最高, 但是当写多线程时要考虑并发操作的问题。
3种list遍历方法性能测试
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 list= new ArrayList();
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 list){
int i=0;
int num=6000000;
for(i=0;i
list.add("list"+i);
}
return list;
}
//list 集合遍历 foreach
public void foreach(List 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 list){
long start=System.currentTimeMillis();
int i=0;
for( i=0;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 list){
long start= System.currentTimeMillis();
for(Iterator 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
从测试的结果我们可以明显的看到第3种效率最高!
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。
java list for循环_Java List遍历的3种方法相关推荐
- java 遍历方法_Java ArrayList遍历的3种方法
首页 > 基础教程 > 集合框架 > ArrayList类 Java ArrayList遍历的3种方法 1. Iterator方法遍历 for(Iterator it2 = list ...
- java 集合遍有几种方法_Java 集合遍历的几种方法
以下实例演示了如何遍历从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型的集合,以下我们分别使用了普通for,增强型的 for ,iterator 等方式来遍历集合: ...
- java字符串abc反转_JAVA字符串反转的三种方法
方法一:使用StringBuilder import java.util.Scanner; public class StrReversal { public static void main(Str ...
- java 结束 线程结束_Java结束线程的三种方法(爱奇艺面试)
线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方法是永远不会结束的.例如在程序中使用线程进行So ...
- java多线程传值覆盖_Java 多线程传值的四种方法
其实大家都知道多线程传值有三种方式: 1:通过构造方法传递数据 2:通过变量和方法传递数据 3:通过回调函数传递数据 那么博主有个非常变态的需求,所以找出了第四种实现方式,先看效果图: 动态Cron4 ...
- java线程异步传值_Java 多线程传值的四种方法
Java 多线程传值的四种方法 作者: sunjs 更新时间:2020-09-11 15:20:16 原文链接 其实大家都知道多线程传值有三种方式: 1:通过构造方法传递数据 2:通过变量和方法传递数 ...
- java 获取区间随机数_Java获取随机数的3种方法
主要介绍了Java获取随机数的3种方法,主要利用random()函数来实现 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: (int)(1+Math.rando ...
- java 获取区间随机数_Java获取随机数的几种方法
随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Jav ...
- java实现自动任务_Java实现定时任务的三种方法
普通thread 这是最常见的,创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果.这样可以快速简单的实现,代码如下: public class Tas ...
最新文章
- 如何开始SLAM学习?
- WM6.1 短信模式修改
- UVA 11020 - Efficient Solutions(set)
- Msxml2.XMLHTTP Microsoft.XMLHTTP new XMLHttpRequest
- (chap4 Http状态码) 4XX
- android实现博客app,如何从零实现一个你的个人博客Android App?
- 圆形指示器radialIndicator控件的使用
- Java多线程实现-线程池
- 12-Python3 元组
- 程序设计基础基于C语言(第二版),程序设计基础_基于C语言(第2版)__课后习题参考答案.doc...
- vb.net 教程 11-1 打印组件 1 基础
- springBoot集成Activiti6
- 查询的端口 -解决端口被占用的问题
- php经纬度测距,PHP根据经纬度坐标计算距离
- 计算机右键 管理,鼠标右键菜单管理方法?
- systemd.timer定时任务
- Python模拟键盘输入(附Python 键位码表)
- Radio RDS简介
- 【STC单片机学习】第五课:动手写代码之前必须的准备工作
- jQuery_删除及清空节点
热门文章
- C++学习(一零六)无法定位程序输入点~于动态链接库上
- 凡人无法打开的文件2
- 解决微信公众号OAuth出现40029(invalid code,不合法的oauth_code)的错误
- 【项目实战-MATLAB】:基于CNN的心音信号分类
- 《Pragmatic unit testing:in java with Junit》阅读
- 【Serverless】2)读懂Serverless
- nginx限制了你的想象?那么请用openresty
- ubuntu16.04.3安装MinDoc
- rmd中无法打开链结r_从零开始入门R语言—Rstudio下载与安装
- VIM插件配置——ctags/taglist/omnicppcomplete/winmanager