`
李灵晖-raylee
  • 浏览: 135658 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

从头认识java-9.5 迭代器Iterator

 
阅读更多

这一章节我们来讨论一些迭代器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方法,使得迭代器里面已经指向一个新的对象。


总结:这一章节简单讨论了迭代器的概念,以及相应的注意点。


这一章节就到这里,谢谢。

-----------------------------------

目录


分享到:
评论

相关推荐

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

    - `remove()`:可选操作,从迭代器指向的集合中移除上次返回的元素。 #### 2. 遍历集合的示例 使用`Iterator`遍历集合的标准方式如下所示: ```java Iterator it = collection.iterator(); while (it.hasNext()) { ...

    设计模式--迭代器模式java例子

    在Java中,迭代器模式广泛应用于集合框架,如ArrayList、LinkedList等。本示例将深入探讨如何在Java中实现和使用迭代器模式。 首先,我们需要理解迭代器模式中的几个关键角色: 1. **聚合类(Aggregate)**:它...

    计算机后端-Java-Java核心基础-第24章 集合01 09. 迭代器Iterator的执行原理.avi

    计算机后端-Java-Java核心基础-第24章 集合01 09. 迭代器Iterator的执行原理.avi

    Java-Edge#Java-Interview-Tutorial#Iterator迭代器到底是什么?1

    迭代器与枚举有两点不同:1. 迭代器允许调用者利用定义良好的语义在迭代期间,从迭代器所指向的 collection 移除元素2. 优化方法名其接口定义如下:Ob

    iterator-demo 迭代器设计模式demo

    这个“iterator-demo”应该是一个示例项目,用于演示如何在实际编程中应用迭代器模式。下面我们将深入探讨迭代器模式及其在IT领域的应用。 迭代器模式的核心思想是为集合类提供一种统一的访问方式,使得客户代码...

    java设计模式--迭代器设计模式.docx

    在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,使得用户可以通过迭代器进行遍历而无需了解具体的实现细节。 ### 模式介绍 迭代器模式的核心思想是将遍历操作与数据存储分离,通过定义一个...

    迭代器Iterator.txt

    根据提供的文件信息,我们可以深入探讨迭代器(Iterator)这一设计模式在Java中的应用与实现细节。迭代器模式是一种常用的设计模式,它允许我们以一种顺序访问集合对象的方式遍历其元素,而无需暴露该对象的内部表示...

    Android设计模式之--迭代器模式

    在Java或Android编程中,我们经常使用ArrayList、LinkedList等集合类,它们都提供了迭代器接口来实现这一模式。 在Android设计模式中,迭代器模式的主要作用是分离了聚合对象(如数组、列表)与遍历它的方法。这样...

    java迭代器模式实现正反向遍历

    在Java编程语言中,迭代器模式(Iterator Pattern)是一种常用的设计模式,用于顺序访问集合对象中的元素,而无需暴露其底层表示。这种模式提供了一种方法来访问一个聚合对象的元素,而无需暴露该对象的内部结构。在...

    java专题-迭代器

    ### Java专题:深入理解迭代器模式 #### 引言 迭代器模式是设计模式中的一种,主要用于处理集合或容器中的元素遍历问题。在Java中,迭代器模式被广泛运用,尤其是在处理各种集合如`List`、`Set`、`Map`等时,通过...

    Iterator迭代器讲解

    ### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,它提供了遍历集合的基本方法。`Iterator`的主要作用是在不暴露集合内部结构的情况下,顺序访问集合中的...

    java基础 集合-22-迭代器设计模式

    Java中的`Iterator`接口位于`java.util`包下,它是所有迭代器的基类。它提供了三个核心方法: - `hasNext()`: 检查当前迭代器是否还有更多的元素,返回布尔值。 - `next()`: 返回集合中的下一个元素,如果已到达...

    【Java设计模式】(1)迭代器模式Iterator

    迭代器模式(Iterator Pattern)是Java设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,通过...

    java 迭代及迭代器的小例子

    在Java编程语言中,迭代是遍历集合对象(如数组、列表或集合)的重要机制,而迭代器(Iterator)则是实现这一机制的关键工具。这里,我们通过一个小例子来深入理解Java中的迭代和迭代器。 首先,我们需要了解什么是...

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

    Java集合框架迭代器Iterator实现原理解析 在Java集合框架中,迭代器(Iterator)是一个核心接口,用于遍历容器中的元素。下面我们将详细介绍迭代器的实现原理、使用方法和注意事项。 一、什么是迭代器? Iterator...

    java Iterator迭代器的使用

    要使用`Iterator`,首先需要通过调用集合类的`iterator()`方法来获取迭代器实例。例如,对于ArrayList,代码可能如下所示: ```java ArrayList&lt;String&gt; list = new ArrayList(); // 添加元素... Iterator...

    迭代器iterator在opencv中使用

    迭代器iterator可以很方便的遍历所有元素。Mat类支持迭代器的方式对矩阵元素进行遍历。由于使用迭代器就不需要再使用行列数进行操作。

    java常用设计模式-迭代器模式

    Java 迭代器模式 Java 迭代器模式是一种行为设计模式,它提供了一种访问集合对象元素的方法,而不需要暴露该对象的内部表示。该模式适用于需要遍历集合对象的场景,例如数组、列表、树等。 迭代器模式的主要优点是...

    c#代码介绍23种设计模式-16迭代器模式(附代码)

    1. 迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们...迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口

    Java学习之Iterator(迭代器)的一般用法

    在深入探讨Java中Iterator(迭代器)的一般用法之前,我们先来理解一下迭代器在编程中的核心价值。迭代器是一种设计模式,其主要作用在于遍历集合中的元素,而无需开发者知晓集合的具体实现细节。这使得代码更加灵活、...

Global site tag (gtag.js) - Google Analytics