list_arrayList三种遍历性能比较

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTest {

/**
     * @param args
     */
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        for(int j=0;j<1000000;j++){
            list.add(j);
        }
        long t1,t2;
        t1=System.currentTimeMillis();          
        for(int i = 0;i<list.size();i++){
            int a = list.get(i);
        }
        t2=System.currentTimeMillis();  
        System.out.println("Run1 Time:" + (t2 -t1) + "(ms)");  
        
        
        System.out.println("---------------------------");
        t1=System.currentTimeMillis();
        for(int listValue:list){
            int b = listValue;
        }
        t2=System.currentTimeMillis();  
        System.out.println("Run2 Time:" + (t2 -t1) + "(ms)");
        System.out.println("---------------------------");
        t1=System.currentTimeMillis();
        Iterator<Integer> iterato = list.iterator();
        while(iterato.hasNext()){
            int c = iterato.next();
        }
        t2=System.currentTimeMillis();  
        System.out.println("Run3 Time:" + (t2 -t1) + "(ms)");

}

}

result:Run1 Time:13(ms)
---------------------------
Run2 Time:34(ms)
---------------------------
Run3 Time:29(ms)

从结果可以看出第一种遍历速度最快

时间: 2024-11-06 17:31:26

list_arrayList三种遍历性能比较的相关文章

for 、foreach 、iterator 三种遍历方式的比较

习惯用法 for.foreach循环.iterator迭代器都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组.集合等 for 惯用法: List<String> list = new ArrayList<String>(); String[] arr = new String[]{"1,2,3,4"}; for(int i = 0;i < arr.length;i++){ System.out.println(arr[i]); } for(i

谈谈vector容器的三种遍历方法

说明:本文仅供学习交流,转载请标明出处,欢迎转载! vector容器是最简单的顺序容器,其使用方法类似于数组,实际上vector的底层实现就是采用动态数组.在编写程序的过程中,常常会变量容器中的元素,那么如何遍历这些元素呢?本文给出三种遍历方法. 方法一:采用下标遍历 由于vector容器就是对一个动态数组的包装,所以在vector容器的内部,重载了[]运算符,函数原型为:reference operator [] (size_type n);所以我们可以采用类似于数组的方式来访问vector容

二叉树三种遍历(递归以及非递归实现)

package com.shiyeqiang.tree; import java.util.Stack; public class BiTree { public static void main(String[] args) { // 首先构造叶子节点 BiTree leafA1 = new BiTree(4); BiTree leafA2 = new BiTree(5); BiTree leafB1 = new BiTree(6); BiTree leafB2 = new BiTree(7)

Jquery中each的三种遍历方法

Jquery中each的三种遍历方法 $.post("urladdr", { "data" : "data" }, function(data) { $.each(data, function(n,value) { });}); 1.选择器+遍历 $('div').each(function (i){ i就是索引值 this 表示获取遍历每一个dom对象 }); 2.选择器+遍历 $('div').each(function (index,dom

Java中Map的三种遍历方法

Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历. 告诉您们一个小秘密: (下↓面是测试代码,最爱看代码了,啰嗦再多也没用) 一般人我不告诉他哦. import java.util.*; //0 我的Main界面 public class MapTraverse { public static void main(String[] args) { String[] str = {"I love you

重温数据结构:二叉树的常见方法及三种遍历方式 Java 实现

读完本文你将了解到: 什么是二叉树 Binary Tree 两种特殊的二叉树 满二叉树 完全二叉树 满二叉树 和 完全二叉树 的对比图 二叉树的实现 用 递归节点实现法左右链表示法 表示一个二叉树节点 用 数组下标表示法 表示一个节点 二叉树的主要方法 二叉树的创建 二叉树的添加元素 二叉树的删除元素 二叉树的清空 获得二叉树的高度 获得二叉树的节点数 获得某个节点的父亲节点 二叉树的遍历 先序遍历 中序遍历 后序遍历 遍历小结 总结 树的分类有很多种,但基本都是 二叉树 的衍生,今天来学习下二

算法学习 - 树的三种遍历(递归实现)先序遍历,中序遍历,后序遍历

树的遍历 这三种遍历方法其实都很简单的,举例来说: a / b c 这个是例子下面讲下这三个是如何遍历的. struct TreeNode; typedef TreeNode* Node; typedef int EleType; struct TreeNode{ Node lchild; Node rchild; EleType data; }; 先序遍历 先序遍历,就是从上到下,从左到右,遇到一个就遍历,上面这个例子遍历的序列就是:a b c 递归代码如下: void PreOrderTre

迭代器三种遍历方法

迭代器三种遍历方法,其中也有listIterator在遍历中加入新的元素,不会报错 1 /* 2 listIterator 方法有双向遍历的特点 3 如果要在迭代的过程中加入新的元素,那么就需要利用迭代器中的it.add()方法; 4 不能使用list.add()方法! 5 */ 6 //三种遍历list容器的方式 7 List list = new ArrayList(); 8 list.add("xiaoming"); 9 list.add("longge");

树的高度,深度,层数和三种遍历方式

树的高度: 当只有一个根节点的时候,高度就是0. //计算树的高度int depth(Node node){ if(node == NULL) return -1; int l = depth(node->left); int r = depth(node->right); return (l < r)?(r+1):(l+1);//当只有一个根节点的时候,高度就是-1+1=0} 层数: 树的高度最底下的为第1层(有的书定义为第0层),依次向上累加 树的深度: 完全二叉树是指这样的二叉树: