package com;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class Peop {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Hello {
public static void main(String agr[]) {
Peop p = new Peop();
p.setName("yangxin");
Peop p2 = new Peop();
p2.setName("zhuxiaofei");
//把2个对象实例放入ArrayList容器中。
List<Peop> list = new ArrayList<Peop>();
list.add(p);
list.add(p2);
//开始使用foreach循环打印,for (Peop x : list) ,这条语句定义了一个Peop对象的实例x,继而将每一个list元素赋值给x。
for (Peop x : list) {
System.out.println(x.getName());
}
System.out.println();
//开始使用Iterator迭代器开始打印
Iterator<Peop> iter = list.iterator();
//使用Iterator接口中的hasNext()判断iter是否有值
while(iter.hasNext()){
//用Iterator接口中的next()方法取出iter里的下一个值
Peop str = (Peop)iter.next();
System.out.println(str.getName());
}
}
}
输出:
yangxin
zhuxiaofei
yangxin
zhuxiaofei
这里看见了,使用foreach比使用Iterator迭代器简单,方便许多,但是使用foreach跟使用Iterator迭代器有很明显的略势,foreach在迭代时很难进行对容器的操作,所以一般用于打印(显示),而Iterator迭代器可以方便的操作容器内的元素。
分享到:
相关推荐
### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,它提供了遍历集合的基本方法。`Iterator`的主要作用是在不暴露集合内部结构的情况下,顺序访问集合中的...
在Java集合框架中,集合提供了多种数据结构存储对象,而迭代器与枚举器提供了访问这些集合中元素的方法。尽管它们的目的相似,但在使用方式和某些特性上存在区别。 迭代器(Iterator)接口包含以下三个方法: 1. ...
首先,迭代器模式包含两个主要角色:聚合对象(Aggregate)和迭代器(Iterator)。聚合对象持有元素的集合,并提供创建迭代器的方法。迭代器则负责遍历聚合对象中的元素,它有一个或多个方法用于移动到下一个元素,...
...},需要手动维护迭代器对象和边界检查。 2. 条件差别 for 需要知道集合或数组的大小,而且需要是有序的,不然无法遍历。 foreach 和 iterator 都不需要知道集合或数组的大小,他们都是得到集合内的每个元素...
### 迭代器与增强型for循环 在实际开发中,我们经常看到增强型for循环(也称为foreach循环)被用于遍历集合,其实内部也是利用了迭代器的原理。增强型for循环的语法更加简洁,但它隐藏了迭代器的细节,使得代码更加...
使用迭代器接口,可以使得一个对象集合的遍历过程与集合本身解耦,这样集合就可以专注于内容的管理,而迭代的工作交给迭代器完成。 ### Iterator接口的核心功能: Iterator接口继承自Traversable接口,它定义了一...
4. **具体迭代器(Concrete Iterator)**:实现迭代器接口,存储遍历的状态,并提供遍历具体聚合对象的方法。 ### 实现方式 在Java中,迭代器模式的实现通常使用`Iterable`接口和`Iterator`接口。`Iterable`接口...
客户端只需要与迭代器交互,调用其提供的方法(如`next()`、`current()`、`key()`和`valid()`等),即可按顺序访问聚合对象的元素。 4. **适用性** - 当需要遍历聚合对象时,而不希望暴露其内部结构。 - 需要为...
迭代器模式把迭代过程封装在一个单独的对象中,这个对象实现了Iterator接口,该接口要求定义以下方法:rewind()、valid()、current()、key()和next()。 首先,让我们深入探讨Iterator接口提供的五个关键方法。...
7. **迭代器模式与foreach循环**:Java 5引入的增强for循环(也称为foreach循环),底层就是迭代器模式的实现。例如: ```java for (Type element : collection) { // 处理element } ``` 这样的代码简洁且易于...
常用的集合类Iterator迭代器的使用foreach循环 泛型Collections、Arrays工具
2. **迭代器(Iterator)**:负责遍历聚合对象中的元素。在C#中,`IEnumerator` 接口定义了迭代器的行为,包括 `Current` 属性(返回当前元素),`MoveNext` 方法(移动到下一个元素)和 `Reset` 方法(重置到初始...
迭代器(Iterator)模式是一种行为设计模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在PHP中,迭代器模式使得我们能够遍历任何类型的可计数数据,提供了统一的接口用于遍历,使得代码更加灵活且...
3. **具体迭代器(Concrete Iterator)**:实现迭代器接口,知道如何遍历特定的聚合对象。 4. **客户(Client)**:使用迭代器遍历聚合对象的元素。 在实际应用中,我们可以将迭代器模式与现实生活中的场景相联系。...
迭代器(Iterator)是ES6引入的一个重要特性,它提供了一种统一的方式来遍历各种数据结构,如数组、Set、Map甚至是自定义的数据结构。在Java和Python等其他语言中,迭代器也是常见的一种机制。在JavaScript中,迭代器...
2. **迭代器(Iterator)**:实现了遍历聚合对象中元素的接口,通常包含`hasNext()`和`next()`方法。`hasNext()`检查是否还有更多元素可迭代,`next()`返回下一个元素。在JavaScript示例中,`rewind()`方法用于重置...
Iterator 对象称为迭代器 设计模式的一种 )),主要用于遍历 Collection 集合中的元素。迭代器提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式,就是为容器而生。 ...