这一章节我们来讨论一些迭代器Iterator。
1.概念
迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。
package com.ray.ch09;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class Test {
public static void Traversal(Collection<Integer> collection) {
Iterator<Integer> it = collection.iterator();
while (it.hasNext()) {
int rtn = it.next();
System.out.println(rtn);
}
}
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
list.add(i);
}
HashSet<Integer> set = new HashSet<Integer>();
for (int i = 0; i < 10; i++) {
set.add(i);
}
System.out.println("---------list---------");
Traversal(list);
System.out.println("---------set---------");
Traversal(set);
}
}
从上面的代码可以看见,使用迭代器,不管是list还是set,都可以重复使用Traversal这个方法,这样使得代码重用性得到提高。
2.注意点
(1)我们只需要接收容器,即可以在每个对象上面操作
package com.ray.ch09;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Test {
public static void Traversal(Collection<Person> collection) {
Iterator<Person> it = collection.iterator();
while (it.hasNext()) {
Person person = it.next();
System.out.println(person.getId());
}
}
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<Person>();
for (int i = 0; i < 10; i++) {
Person person = new Person();
person.setId(i);
list.add(person);
}
Traversal(list);
}
}
class Person {
private int id = 0;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
从上面的代码可以看见,我们可以通过迭代器类型的转换,转换成Person类型,然后持有了Person这个对象的引用,那么现在就可以对person对象进行操作。
(2)remove()方法的使用
package com.ray.ch09;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
list.add(i);
}
Iterator<Integer> iterator = list.iterator();
iterator.next();// 如果我们注释了这一句,运行时就会抛异常
iterator.remove();
}
}
当我们使用remove方法的时候,必须先使用next方法,使得迭代器里面已经指向一个新的对象。
总结:这一章节简单讨论了迭代器的概念,以及相应的注意点。
这一章节就到这里,谢谢。
-----------------------------------
目录
分享到:
相关推荐
- `remove()`:可选操作,从迭代器指向的集合中移除上次返回的元素。 #### 2. 遍历集合的示例 使用`Iterator`遍历集合的标准方式如下所示: ```java Iterator it = collection.iterator(); while (it.hasNext()) { ...
在Java中,迭代器模式广泛应用于集合框架,如ArrayList、LinkedList等。本示例将深入探讨如何在Java中实现和使用迭代器模式。 首先,我们需要理解迭代器模式中的几个关键角色: 1. **聚合类(Aggregate)**:它...
计算机后端-Java-Java核心基础-第24章 集合01 09. 迭代器Iterator的执行原理.avi
迭代器与枚举有两点不同:1. 迭代器允许调用者利用定义良好的语义在迭代期间,从迭代器所指向的 collection 移除元素2. 优化方法名其接口定义如下:Ob
这个“iterator-demo”应该是一个示例项目,用于演示如何在实际编程中应用迭代器模式。下面我们将深入探讨迭代器模式及其在IT领域的应用。 迭代器模式的核心思想是为集合类提供一种统一的访问方式,使得客户代码...
在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,使得用户可以通过迭代器进行遍历而无需了解具体的实现细节。 ### 模式介绍 迭代器模式的核心思想是将遍历操作与数据存储分离,通过定义一个...
根据提供的文件信息,我们可以深入探讨迭代器(Iterator)这一设计模式在Java中的应用与实现细节。迭代器模式是一种常用的设计模式,它允许我们以一种顺序访问集合对象的方式遍历其元素,而无需暴露该对象的内部表示...
在Java或Android编程中,我们经常使用ArrayList、LinkedList等集合类,它们都提供了迭代器接口来实现这一模式。 在Android设计模式中,迭代器模式的主要作用是分离了聚合对象(如数组、列表)与遍历它的方法。这样...
在Java编程语言中,迭代器模式(Iterator Pattern)是一种常用的设计模式,用于顺序访问集合对象中的元素,而无需暴露其底层表示。这种模式提供了一种方法来访问一个聚合对象的元素,而无需暴露该对象的内部结构。在...
### Java专题:深入理解迭代器模式 #### 引言 迭代器模式是设计模式中的一种,主要用于处理集合或容器中的元素遍历问题。在Java中,迭代器模式被广泛运用,尤其是在处理各种集合如`List`、`Set`、`Map`等时,通过...
### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,它提供了遍历集合的基本方法。`Iterator`的主要作用是在不暴露集合内部结构的情况下,顺序访问集合中的...
Java中的`Iterator`接口位于`java.util`包下,它是所有迭代器的基类。它提供了三个核心方法: - `hasNext()`: 检查当前迭代器是否还有更多的元素,返回布尔值。 - `next()`: 返回集合中的下一个元素,如果已到达...
迭代器模式(Iterator Pattern)是Java设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,通过...
在Java编程语言中,迭代是遍历集合对象(如数组、列表或集合)的重要机制,而迭代器(Iterator)则是实现这一机制的关键工具。这里,我们通过一个小例子来深入理解Java中的迭代和迭代器。 首先,我们需要了解什么是...
Java集合框架迭代器Iterator实现原理解析 在Java集合框架中,迭代器(Iterator)是一个核心接口,用于遍历容器中的元素。下面我们将详细介绍迭代器的实现原理、使用方法和注意事项。 一、什么是迭代器? Iterator...
要使用`Iterator`,首先需要通过调用集合类的`iterator()`方法来获取迭代器实例。例如,对于ArrayList,代码可能如下所示: ```java ArrayList<String> list = new ArrayList(); // 添加元素... Iterator...
迭代器iterator可以很方便的遍历所有元素。Mat类支持迭代器的方式对矩阵元素进行遍历。由于使用迭代器就不需要再使用行列数进行操作。
Java 迭代器模式 Java 迭代器模式是一种行为设计模式,它提供了一种访问集合对象元素的方法,而不需要暴露该对象的内部表示。该模式适用于需要遍历集合对象的场景,例如数组、列表、树等。 迭代器模式的主要优点是...
1. 迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们...迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口
在深入探讨Java中Iterator(迭代器)的一般用法之前,我们先来理解一下迭代器在编程中的核心价值。迭代器是一种设计模式,其主要作用在于遍历集合中的元素,而无需开发者知晓集合的具体实现细节。这使得代码更加灵活、...