概述
核心
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个方法的平均值要小,其方差值也要小
最后
以上就是乐观金毛为你收集整理的Java中List集合的遍历的全部内容,希望文章能够帮你解决Java中List集合的遍历所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复