`
DoubleEO
  • 浏览: 157805 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

集合对象的迭代效率

阅读更多
    集合的迭代,在多数情况下,咱们想都不想,就会用下面这种
public void iterList(List<Integer> list){
		Iterator<Integer> iter = list.iterator();
		int total = 0;
		while(iter.hasNext())			
			total+=iter.next();
	}

而很少会这样做:
public void getList(List<Integer> list){
		int size = list.size();
		int total = 0;
		for (int i = 0; i < size; i++)
		{
			total+=list.get(i);
		}
	}

但是经测试表明,后一种比前一种快一倍。
打印结果:
用迭代变量的时间78
用get的时间32


原因:就是因为第一种方法在每次循环的时候,多调用了一次iter.hasNext()
分享到:
评论
4 楼 DoubleEO 2009-01-14  
wsbjwjt 写道
public void iterList(List<Integer> list){  
        Iterator<Integer> iter = list.iterator();  
        for(Iterator<Integer> iter = list.iterator();iter.hasNext();)
{
    ......
}

用这个呀?测过吗?

有测试结果啊
3 楼 wsbjwjt 2009-01-14  
public void iterList(List<Integer> list){  
        Iterator<Integer> iter = list.iterator();  
        for(Iterator<Integer> iter = list.iterator();iter.hasNext();)
{
    ......
}

用这个呀?测过吗?
2 楼 hurricane1026 2009-01-09  
唉,java项目谁的瓶颈在内存寻址上面啊。
1 楼 抛出异常的爱 2009-01-09  
用iterater好处就是随时可以增删数据,有程序专门维护idex

相关推荐

    集合嵌套集合并用迭代器输出,有关keySet()和entrySet()的练习

    本练习主要关注集合的嵌套合并以及如何通过迭代器来输出数据。我们将深入探讨`keySet()`和`entrySet()`这两个重要的集合接口方法,它们在处理Map容器时尤其关键。 `keySet()`方法返回一个Set视图,包含了Map中的...

    第7天(集合【迭代器、增强for、泛型】)v201703101

    使用泛型定义集合对象的语法如下: ```java List&lt;Type&gt; list = new ArrayList(); ``` 这样,集合`list`只能存储`Type`类型的元素,编译器会自动检查类型匹配,避免了强制类型转换。 泛型通配符允许在使用集合时保持...

    Java集合框架迭代器Iterator实现原理解析

    Java集合框架迭代器Iterator实现原理解析 在Java集合框架中,迭代器(Iterator)是一个核心接口,用于遍历容器中的元素...通过了解迭代器的实现原理、使用方法和注意事项,可以更好地使用迭代器,提高开发效率和质量。

    比较JavaScript中的集合及其检索效率

    在探讨JavaScript中的集合及其检索效率时,我们主要关注两种数据结构:数组(Array)和对象(Object)。这两种数据结构在JavaScript中被广泛使用,各有其优势和适用场景,尤其是在处理大量数据时,它们的检索效率...

    IteratorPattern 迭代设计模式

    这种模式允许我们遍历集合对象的元素,而无需暴露其内部结构。在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类库,如ArrayList、LinkedList等。 **迭代器模式的核心组成**: 1. **迭代器接口(Iterator ...

    Java迭代器模式:遍历集合的优雅之舞

    ### Java迭代器模式详解 #### 一、Java迭代器模式概览 在Java语言中,迭代器模式(Iterator Pattern)是一种行为型设计模式,它的...在实际开发过程中,熟练掌握并运用迭代器模式可以极大地提高编码效率和软件质量。

    C++ 面向对象程序设计 对两个集合的操作 求交.求并....

    这可以通过同时迭代两个集合,并检查元素是否同时存在于两个集合中来实现。 4. **模板类**: 如果我们希望我们的集合类能够处理不同类型的数据,可以使用C++的模板机制。模板允许我们创建泛型类,使得集合类可以...

    迭代器,生成器

    这些对象通常包含一系列的数据项,如列表、元组、字典、集合等。它们的共同特点是能够提供一种机制来遍历其中的每个元素。Python通过`collections.abc.Iterable`类定义了可迭代对象的基本行为,这使得我们可以轻松地...

    jsp自定义迭代标签

    - **`setCollection`** 方法用于设置待迭代的集合对象,并初始化迭代器。 - **`doStartTag`** 方法在标签开始执行时调用,检查迭代器是否为空,如果不为空则继续执行。 - **`doAfterBody`** 方法在标签体内容执行...

    关于迭代的方法

    在这段代码中,`value="{'a','b','c'}"`指定了一个包含三个元素的数组作为迭代对象;`id='char'`则定义了一个变量`char`来保存当前迭代的元素;而`status='st'`则定义了一个名为`st`的变量来存储迭代状态。 ##### ...

    详解Python中的内建函数,可迭代对象,迭代器

    理解并熟练运用这些内建函数、可迭代对象和迭代器,能够显著提升Python代码的效率和可读性,是成为一名合格的Python开发者所必备的基础知识。在实际编程中,要根据具体需求灵活运用这些工具,实现高效的数据处理和...

    20迭代器模式.zip

    这个模式允许我们遍历集合对象的元素,而无需暴露集合的内部结构,因此增加了集合类的封装性。 在Java、Python等编程语言中,迭代器模式的应用非常广泛。迭代器模式主要由以下角色组成: 1. **迭代器接口(Iterator...

    java集合使用大全

    * 使用迭代器(Iterator 接口)将集合对象实例转换成 Iterator 对象实例,然后利用 Iterator 中的函数进行输出 * 使用 foreach 语法 迭代器 迭代器其实就是从集合中取元素的方式:每个集合都有取元素的方法,但是...

    Java集合类中的迭代器

    迭代器是一种设计模式,它提供了一种方法来顺序访问集合对象的元素,而不暴露其底层表示。在Java中,`java.util.Iterator`接口定义了迭代器的行为,它有两个主要方法:`hasNext()`用于检查是否还有更多元素,`next()...

    4对象集合项目源码.rar

    4. **集合的遍历与迭代**:通过foreach循环或者IEnumerator接口,源码可能会展示如何遍历整个集合,访问每个元素。 5. **集合的排序和比较**:可能涉及到IComparable和IComparer接口,用于自定义对象的比较规则,...

    16迭代器模式1

    1. **效率问题**:如果迭代器需要保存大量状态信息,可能会消耗较多内存。 2. **对并发访问的支持不足**:迭代器模式在多线程环境下使用时,需要额外的同步机制,否则可能导致数据一致性问题。 3. **若聚合对象的...

    struts2迭代 Map List

    在这个场景下,我们关注的是如何在Struts2中迭代Map和List对象。这两种数据结构在Web开发中经常被用到,特别是在展示表单数据或动态渲染页面元素时。 首先,让我们深入了解`struts2-taglib`,这是一个包含Struts2...

    C#面向对象设计模式纵横谈(18):(行为型模式) Iterator 迭代器模式 (Level 300)

    迭代器模式是面向对象设计中的一个行为型模式,它的主要目的是提供一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。...在进行面向对象设计时,熟练掌握并合理运用迭代器模式,将有助于提升软件的质量和效率。

    迭代器源码

    `GetEnumerator`方法实际上是一个迭代器,当被外部代码(如foreach循环)调用时,会返回一个`IEnumerator&lt;int&gt;`对象,该对象可以通过`MoveNext()`和`Current`属性遍历序列。 在我们的“迭代器Demo”项目中,可能...

    状态及模板和迭代等设计模式及实现

    它允许我们遍历集合对象的元素,而不必暴露集合的内部结构。在Java中,ArrayList、LinkedList等集合类都提供了迭代器接口供我们使用。在实际编程中,迭代器模式广泛应用于各种数据结构的遍历,如数组、链表、树结构...

Global site tag (gtag.js) - Google Analytics