`
liujiawinds
  • 浏览: 136904 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

用iterator实现遍历集合

    博客分类:
  • java
阅读更多
使用Collection类的Iterator,可以方便的遍历Vector, ArrayList, LinkedList等集合元素,避免通过get()方法遍历时,针对每一种对象单独进行编码。

示例:

Collection coll = new Vector(); //LinkedList(); //ArrayList();  
coll.add("Tody");  
coll.add("is");  
coll.add("Sunday.");  
  
// Output all elements by iterator  
Iterator it = coll.iterator();  
while(it.hasNext()) {  
    System.out.print(it.next() + " ");  
}  


输出:

Tody is Sunday.



1.hasNext()函数的API解释

boolean java.util.Iterator.hasNext()


hasNext
boolean hasNext()
Returns true if the iteration has more elements. (In other words, returns true if next() would return an element rather than throwing an exception.)


Returns:
true if the iteration has more elements
---------------------------------------------------------

2.next()函数的API解释

Object java.util.Iterator.next()


next
E next()
Returns the next element in the iteration.


Returns:
the next element in the iteration
Throws:
NoSuchElementException - if the iteration has no more elements


Collection coll = new HashSet();  
coll.add("Tody");  
coll.add("is");  
coll.add("Sunday.");  
  
// Output all elements by iterator  
Iterator it = coll.iterator();  
while(it.hasNext()) {  
    System.out.print(it.next() + " ");  
}  


输出:

is Sunday. Tody



由上面两个例子看出,在List和Set对象中,Iterator的next()方法返回的值是不一样的。

原因是List属于线性集合,元素是有序的,读取时是按照数组的形式,一个接一个的读取,存储也是按照add的顺序添加的。

而Set属于非线性的,是无序的,所以读取的元素与添加的顺序不一定一致。

对于HashSet,其实它返回的顺序是按Hashcode的顺序。

如果迭代也有序,则可以用LinkedHashSet。

原文出自:http://blog.csdn.net/ameyume/article/details/6099554
分享到:
评论

相关推荐

    使用Iterator接口遍历集合元素

    使用 Iterator 接口遍历集合元素 Java 集合框架中的 Iterator 接口是一种非常重要的接口,它主要用于遍历集合中的元素。Iterator 接口隐藏了各种 Collection 实现类的底层细节,向应用程序提供了遍历 Collection ...

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

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

    iterator 遍历循环代码

    对于集合中的元素进行遍历是常见操作,而`Iterator`接口则是Java中最常用的一种遍历集合的方式。本文将通过一个具体的示例代码来详细介绍如何利用`Iterator`进行集合遍历。 #### 二、示例代码解析 在给定的代码...

    Java Iterator接口遍历单列集合迭代器原理详解

    迭代器的实现原理:当遍历集合时,首先通过调用Collection集合的iterator()方法获得迭代器对象,然后使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合...

    struts2遍历集合

    #### 使用`s:iterator`标签遍历集合 `s:iterator`标签是Struts2中最常用的遍历集合的标签。它的主要属性包括: - **value**:指定要遍历的集合,可以是数组、列表或Map类型的对象。 - **id**:为每个遍历元素设置...

    65丨迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?1

    使用迭代器模式相比直接遍历集合数据(如使用for循环)有以下优势: 1. **灵活性**:迭代器允许在不依赖于特定集合实现的情况下进行遍历,这使得代码更具有通用性和可扩展性。 2. **封装性**:迭代器隐藏了集合的...

    java技巧java中可以用来循环遍历任何一个集合的通用方法

    迭代器允许我们在不暴露底层实现的情况下遍历集合中的元素,这使得我们的程序更加健壮并且易于维护。 ##### 2.1 迭代器的基本使用 迭代器提供了一系列的方法来访问集合中的元素: - `hasNext()`:判断集合中是否...

    Java遍历集合方法分析(实现原理、算法性能、适用场合)_.docx

    本文将深入分析Java中三种主要的遍历集合方法:传统的for循环遍历、迭代器遍历以及foreach循环遍历。 1. **传统的for循环遍历**: 这种方式依赖于计数器,开发者需要手动初始化并维护计数器,依次读取集合中的每个...

    Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)

    一旦Action处理完数据,我们可以使用`&lt;s:iterator&gt;`标签在JSP中遍历并展示这些集合。例如: ```jsp &lt;s:iterator value="list"&gt; &lt;p&gt;&lt;s:property value="this"/&gt; &lt;/s:iterator&gt; &lt;s:iterator value="set"&gt; &lt;p&gt;...

    java-util-iterator.pdf java-util-iterator.pdf

    ### 五、不同集合类的Iterator实现 不同类型的集合类通常会有自己的`Iterator`实现。例如: - `ArrayList`可能会返回一个基于数组的`Iterator`。 - `LinkedList`可能会返回一个基于双向链表的`Iterator`。 - `...

    list遍历集合源码

    例如,如果你在初始化时不确定具体使用哪种List实现,可以先声明一个List类型的引用,后期根据需求再决定填充哪种实现。 此外,List接口还有其他一些方法,如`contains(Object o)`用于判断List是否包含特定元素,`...

    Java遍历集合方法分析(实现原理、算法性能、适用场合)

    在Java中,常见的遍历集合的方法包括传统的for循环、迭代器Iterator以及foreach循环。 1. 传统的for循环遍历 这种方式需要开发者手动维护一个计数器,并通过调用`size()`方法获取集合长度,然后通过`get(index)`...

    暑假培训学习笔记之java循环遍历集合

    然后是增强型`for`循环,也叫foreach循环,它简化了遍历集合的过程,适用于任何实现了`Iterable`接口的集合类型: ```java ArrayList&lt;String&gt; list = new ArrayList(); // 添加元素... for (String element : list)...

    JAVA中的Iterator的用法

    在Java中,通常采用以下方式使用`Iterator`来遍历集合: ```java List&lt;String&gt; list = new ArrayList(); list.add("Hello"); list.add("World"); Iterator&lt;String&gt; iterator = list.iterator(); while (iterator....

    2022年Java源码分析:深入探讨Iterator模式Java教程.docx

    在使用`Iterator`遍历集合时,客户端代码只与`Iterator`交互,不会直接操作集合,这降低了耦合度,提高了代码的可读性和可维护性。如果将来需要将ArrayList替换为LinkedList,只需更改集合类型,原有遍历代码无需...

    Java Iterator接口实现代码解析

    这个方法是一个可选操作,并不是所有的Iterator实现都支持这个方法。 Iterator接口的实现需要遵守一些规则,例如在遍历集合时不能修改集合的内容,否则可能会出现不可预料的结果。同时,Iterator接口的实现也需要...

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

    这种模式允许我们在不知道容器内部结构的情况下遍历容器中的元素,从而使容器的实现可以独立变化,不会影响到使用该容器的客户端代码。 #### 二、Java迭代器模式的关键概念 迭代器模式主要包含以下几个关键的概念...

    java遍历list集合.zip

    Java中的List接口定义了iterator()方法,返回一个Iterator对象,用于遍历集合。使用迭代器的优点是可以安全地删除集合中的元素,而不会影响到其他元素的索引。 ```java List&lt;String&gt; list = new ArrayList(); // ...

    Java集合框架常见面试题.pdf

    Java 提供了多种遍历集合的方式,包括使用 Iterator、for-each 循环和 Java 8 中的 Stream。 Java 集合框架的优点 Java 集合框架的优点包括: * 提高了编程效率:Java 集合框架提供了多种集合类和遍历集合的方式...

    Iterator接口

    Iterator接口和ListIterator接口的使用可以带来很多便利,例如,使用Iterator接口可以遍历集合中的元素,而不管集合的具体实现类型,同时也可以使用ListIterator接口来控制迭代器的行为,例如,添加或删除元素。...

Global site tag (gtag.js) - Google Analytics