使用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 接口遍历集合元素 Java 集合框架中的 Iterator 接口是一种非常重要的接口,它主要用于遍历集合中的元素。Iterator 接口隐藏了各种 Collection 实现类的底层细节,向应用程序提供了遍历 Collection ...
在Struts2中,`iterator`标签是用于遍历集合数据的重要工具,它可以用来迭代Map、List和数组等数据结构,以便在视图层进行展示。本篇文章将深入探讨`iterator`标签在遍历这些数据类型时的具体用法。 首先,我们来看...
对于集合中的元素进行遍历是常见操作,而`Iterator`接口则是Java中最常用的一种遍历集合的方式。本文将通过一个具体的示例代码来详细介绍如何利用`Iterator`进行集合遍历。 #### 二、示例代码解析 在给定的代码...
迭代器的实现原理:当遍历集合时,首先通过调用Collection集合的iterator()方法获得迭代器对象,然后使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合...
#### 使用`s:iterator`标签遍历集合 `s:iterator`标签是Struts2中最常用的遍历集合的标签。它的主要属性包括: - **value**:指定要遍历的集合,可以是数组、列表或Map类型的对象。 - **id**:为每个遍历元素设置...
使用迭代器模式相比直接遍历集合数据(如使用for循环)有以下优势: 1. **灵活性**:迭代器允许在不依赖于特定集合实现的情况下进行遍历,这使得代码更具有通用性和可扩展性。 2. **封装性**:迭代器隐藏了集合的...
迭代器允许我们在不暴露底层实现的情况下遍历集合中的元素,这使得我们的程序更加健壮并且易于维护。 ##### 2.1 迭代器的基本使用 迭代器提供了一系列的方法来访问集合中的元素: - `hasNext()`:判断集合中是否...
本文将深入分析Java中三种主要的遍历集合方法:传统的for循环遍历、迭代器遍历以及foreach循环遍历。 1. **传统的for循环遍历**: 这种方式依赖于计数器,开发者需要手动初始化并维护计数器,依次读取集合中的每个...
一旦Action处理完数据,我们可以使用`<s:iterator>`标签在JSP中遍历并展示这些集合。例如: ```jsp <s:iterator value="list"> <p><s:property value="this"/> </s:iterator> <s:iterator value="set"> <p>...
### 五、不同集合类的Iterator实现 不同类型的集合类通常会有自己的`Iterator`实现。例如: - `ArrayList`可能会返回一个基于数组的`Iterator`。 - `LinkedList`可能会返回一个基于双向链表的`Iterator`。 - `...
例如,如果你在初始化时不确定具体使用哪种List实现,可以先声明一个List类型的引用,后期根据需求再决定填充哪种实现。 此外,List接口还有其他一些方法,如`contains(Object o)`用于判断List是否包含特定元素,`...
在Java中,常见的遍历集合的方法包括传统的for循环、迭代器Iterator以及foreach循环。 1. 传统的for循环遍历 这种方式需要开发者手动维护一个计数器,并通过调用`size()`方法获取集合长度,然后通过`get(index)`...
然后是增强型`for`循环,也叫foreach循环,它简化了遍历集合的过程,适用于任何实现了`Iterable`接口的集合类型: ```java ArrayList<String> list = new ArrayList(); // 添加元素... for (String element : list)...
在Java中,通常采用以下方式使用`Iterator`来遍历集合: ```java List<String> list = new ArrayList(); list.add("Hello"); list.add("World"); Iterator<String> iterator = list.iterator(); while (iterator....
在使用`Iterator`遍历集合时,客户端代码只与`Iterator`交互,不会直接操作集合,这降低了耦合度,提高了代码的可读性和可维护性。如果将来需要将ArrayList替换为LinkedList,只需更改集合类型,原有遍历代码无需...
这个方法是一个可选操作,并不是所有的Iterator实现都支持这个方法。 Iterator接口的实现需要遵守一些规则,例如在遍历集合时不能修改集合的内容,否则可能会出现不可预料的结果。同时,Iterator接口的实现也需要...
这种模式允许我们在不知道容器内部结构的情况下遍历容器中的元素,从而使容器的实现可以独立变化,不会影响到使用该容器的客户端代码。 #### 二、Java迭代器模式的关键概念 迭代器模式主要包含以下几个关键的概念...
Java中的List接口定义了iterator()方法,返回一个Iterator对象,用于遍历集合。使用迭代器的优点是可以安全地删除集合中的元素,而不会影响到其他元素的索引。 ```java List<String> list = new ArrayList(); // ...
Java 提供了多种遍历集合的方式,包括使用 Iterator、for-each 循环和 Java 8 中的 Stream。 Java 集合框架的优点 Java 集合框架的优点包括: * 提高了编程效率:Java 集合框架提供了多种集合类和遍历集合的方式...
Iterator接口和ListIterator接口的使用可以带来很多便利,例如,使用Iterator接口可以遍历集合中的元素,而不管集合的具体实现类型,同时也可以使用ListIterator接口来控制迭代器的行为,例如,添加或删除元素。...