`

List 和 Iterator

    博客分类:
  • Java
阅读更多

今天看到这个java.util.RandomAccess接口,看到了这么一句话:

写道
this loop:

for (int i=0, n=list.size(); i < n; i++)
list.get(i);

runs faster than this loop:
for (Iterator i=list.iterator(); i.hasNext(); )
i.next();

 

写了一个小的实验:真是的,

public class Tst {

	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		for(int i=0; i<10000000; i++) {
			list.add(100);
		}

		long startTime = System.currentTimeMillis();
		for (int i=0, n=list.size(); i < n; i++)
			list.get(i);
		startTime = System.currentTimeMillis();
		System.out.println("Runned time : " + (System.currentTimeMillis()-startTime));

		for (Iterator<Integer> i=list.iterator(); i.hasNext(); )
			i.next();
		startTime = System.currentTimeMillis();
		System.out.println("Runned time : " + (System.currentTimeMillis()-startTime));
	}

}

 

结果:

 

写道
Runned time : 125
Runned time : 422

 

 

那就是迭代器要慢些,粗略看看了,不用迭代器是要简单一些,检测一些数组有没有越界,就从数组中取数了。用迭代器就麻烦了,先返回迭代器,在……,没有细看呢。

 

那为什么有迭代器呢,有什么好处呢?

代码比较的规则。

可以同时做删除操作,增加操作

分享到:
评论

相关推荐

    Hibernate教程24_Hibernate的补充_list与iterator

    本教程将重点讲解在使用Hibernate时,如何处理查询结果集合,特别是通过`list()`和`iterator()`方法进行数据迭代的操作。 【描述】"http://blog.csdn.net/e421083458/article/details/8794127" 这个链接指向的是一...

    jsp自定义标签iterator遍历list[整理].pdf

    JSP 自定义标签 Iterator ...本文介绍了 JSP 自定义标签 Iterator 遍历 List 的实现过程,包括标签类的实现和标签配置文件的配置。通过使用 Iterator 标签,可以方便地遍历 List 中的元素,并将其输出到 JSP 页面中。

    Collection、Map、List、Set、Iterator

    ### Collection、Map、List、Set、...以上就是关于 `Collection`、`Map`、`List`、`Set` 和 `Iterator` 的详细解析,这些概念和类是 Java 编程中非常基础且重要的部分,掌握它们有助于更好地理解和使用 Java 集合框架。

    Struts2 iterator 标签遍历 Map,List,数组(三十六)

    在Struts2中,`iterator`标签是用于遍历集合数据的重要工具,它可以用来迭代Map、List和数组等数据结构,以便在视图层进行展示。本篇文章将深入探讨`iterator`标签在遍历这些数据类型时的具体用法。 首先,我们来看...

    JAVA中的Iterator的用法

    Iterator&lt;String&gt; iterator = list.iterator(); ``` ##### 2. 遍历集合 一旦有了`Iterator`对象,就可以通过调用`hasNext()`和`next()`方法来遍历集合。示例代码如下: ```java while (iterator.hasNext()) { ...

    Iterator遍历过程中list删除导致异常

    在Java编程中,`Iterator`是用于遍历集合(如`List`, `Set`等)的重要工具。然而,当我们尝试在使用`Iterator`遍历集合的过程中直接修改集合时,可能会遇到`ConcurrentModificationException`异常。这个异常通常发生...

    Iterator迭代器的用法

    该文档是演示迭代器Iterator的使用方法和源代码,其中包括了Iterator的继承类的讲解和再Iterator中的两种方法

    iterator嵌套,struts2

    在Struts2框架中,`iterator`标签是一个非常重要的组件,用于遍历各种集合对象,如List、Map等。在上述描述中,开发者遇到了一个关于`iterator`标签嵌套使用的问题,涉及到`LinkedHashMap`存储的数据结构。让我们...

    Iterator详解

    对于需要双向遍历或在List中进行插入和删除操作的情况,Java提供了`ListIterator`接口,它是`Iterator`的子接口。`ListIterator`提供了`hasPrevious()`、`previous()`、`add()`和`set()`等额外的方法,增强了对List...

    模拟java ArrayList Iterator

    ArrayList提供了一种高效的方式来管理大量的元素,并且提供了迭代器(Iterator)来遍历这些元素,使得我们可以在不暴露底层实现细节的情况下访问和修改列表中的元素。这个资源的目的是通过模拟Java ArrayList的...

    struts2 标签iterator使用

    `&lt;s:iterator&gt;`标签允许你在JSP页面上遍历任何可迭代的对象,包括数组和集合。其基本语法如下: ```xml &lt;s:iterator value="yourCollection" var="item"&gt; // 这里可以使用${item}来访问当前迭代的元素 &lt;/s:...

    jsp页面iterator遍历数组、Map、List

    该文档代码讲述了如何在jsp页面iterator遍历数组、Map、List集合

    Iterator用法

    例如,在STL中,`std::vector`和`std::list`都有自己的迭代器类型,但它们都支持类似的操作,如`begin()`和`end()`,以及解引用和递增操作。这使得我们可以在不知道容器类型的情况下编写通用的算法,如`std::sort`或...

    11-Iterator.rar

    Iterator&lt;String&gt; iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(); System.out.println(item); } ``` 这段代码首先创建了一个ArrayList,然后添加了三个元素。接着,...

    Map、Set、Iterator迭代详解

    Iterator&lt;String&gt; iterator = list.iterator(); while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } ``` ### Java集合框架概述 #### 1. 集合框架简介 Java集合...

    struts2 iterator标签遍历二维数组

    &lt;s:iterator value="list" status="statusVar"&gt; // 迭代内容 &lt;/s:iterator&gt; ``` 其中: - `value`属性指定了要迭代的对象,可以是数组、列表等。 - `status`属性定义了一个变量名,用于保存迭代状态,包括当前索引...

    Struts迭代器(iterator)遍历List常用的4种例子

    相反,显示的数据表格行和列不确定,此时用实体类(UserEntity)迭代的方式很难实现,只能用List或List&lt;List&lt;String&gt;&gt;实现了。 运行效果及代码解释请参考我的博客园:...

    仿std&&list;的iterator迭代器

    为了高效地遍历和操作这个容器中的元素,STL使用了迭代器(iterator)的概念。迭代器就像一个指针,但具有更高级的功能,能够适应不同的容器和算法。在本主题中,我们将深入探讨如何仿照`std::list`的迭代器进行实现...

    struts2中iterator 标签的使用详解

    在Struts2框架中,`&lt;s:iterator&gt;`标签是一个非常强大的工具,用于在JSP页面上循环遍历集合数据,如列表(List)、数组、Map等。它允许开发者以一种动态且灵活的方式展示来自后端的数据,从而极大地提高了开发效率和...

    Android Litepal数据库开源框架使用

    - Litepal支持List和Iterator两种方式遍历查询结果。例如,`List&lt;User&gt; users = DataSupport.findAll(User.class);`可以获取所有用户,然后通过for-each循环遍历。 6. **关系映射** - Litepal支持一对多、多对一...

Global site tag (gtag.js) - Google Analytics