`
i拾贝
  • 浏览: 31057 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java容器之Iterator(迭代器)

    博客分类:
  • java
阅读更多

java容器之Iterator(迭代器)

Method Summary

boolean hasNext()
Returns true if the iteration has more elements.
判断游标右边是否有元素
E next()
Returns the next element in the iteration.
返回游标右边的元素,并将游标移动到下一位置
default void remove()
Removes from the underlying collection the last element returned by this iterator (optional operation).
删除游标左边的元素

 

TestIterator.java

import java.util.*;

//Iterator迭代器测试
public class TestIterator {
    public static void main(String[] args) {
        Collection c = new HashSet();
        c.add(new Name("f1","l1"));
		c.add(new Name("f2","l2"));
		c.add(new Name("f3","l3"));
		Iterator i = c.iterator();
		
		//判断游标右边是否有元素
		while(i.hasNext()){
			//next()的返回值要强制转换为对应的对象类型
			Name n = (Name)i.next();
			System.out.println(n.getFirstName() + " ");
		}
		System.out.println();
		
		///////////////////////////////////
		
		Collection c2 = new HashSet();
        c2.add(new Name("f1111","l1111"));
		c2.add(new Name("f2","l2"));
		c2.add(new Name("f3333","l3333"));
		
		for(Iterator it = c2.iterator(); it.hasNext();){
			Name name = (Name)it.next();
			if(name.getFirstName().length() < 3){
				it.remove();
				//如果换成c.remove(name)会产生例外
			}
		}
		System.out.println(c2);//[f1111 l1111, f3333 l3333]
		
    }


}

class Name /*implements Comparable*/ {
    private String firstName,lastName;
    public Name(String firstName, String lastName) {
        this.firstName = firstName; this.lastName = lastName;
    }
    public String getFirstName() {  return firstName;   }
    public String getLastName() {   return lastName;   }
    public String toString() {  return firstName + " " + lastName;  }
    
	/**
	*	重写equals方法
	*/
    public boolean equals(Object obj) {
	    if (obj instanceof Name) {
	        Name name = (Name) obj;
	        return (firstName.equals(name.firstName))
	            && (lastName.equals(name.lastName));
	    }
	    return super.equals(obj);
	}
	/**
	*	重写hashCode方法
	*/
	public int hashCode() {
		    return firstName.hashCode();
	}
		
}

 

F:\java>javac TestIterator.java
注: TestIterator.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java TestIterator
f1
f2
f3

[f1111 l1111, f3333 l3333]

F:\java>

 

分享到:
评论

相关推荐

    Iterator迭代器讲解

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

    Java编程Iterator迭代器设计原理及实现代码示例

    在Java中,Iterator迭代器是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素。那么Iterator迭代器的设计原理是什么呢?为什么定义了一个接口,而不是一个类呢? Iterator迭代器的设计原理是基于Java中的...

    Java设计模式之Iterator模式

    2.定义一个Iterator迭代器的接口 3.定义一个ArrayList,实现Collection接口,并写一个实现了Iterator接口的内部类。 4.编写测试程序TestMain 从以上可以看出,设计模式到处用到面向对象中的多态。接口调用子类中的...

    迭代器Iterator.txt

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

    Map、Set、Iterator迭代详解

    ### Iterator迭代器详解 #### 1. Iterator接口介绍 `Iterator`接口提供了遍历`Collection`中元素的能力。它是一种设计模式,允许开发者遍历容器中的元素,而无需暴露容器底层的实现细节。 #### 2. Iterator接口的...

    设计模式之迭代器模式(Iterator)

    例如,在Java中,`Iterable`接口和`Iterator`接口就是实现迭代器模式的关键。`Iterable`接口定义了获取迭代器的方法`iterator()`,而`Iterator`接口提供了`hasNext()`和`next()`方法,分别用于检查是否还有下一个...

    深入浅出学习Java设计模式之迭代器模式

    容器类,如`ArrayList`,提供了创建具体迭代器的`iterator()`方法,返回的迭代器(通常是内部类)根据容器的结构实现遍历逻辑。 通过迭代器模式,我们可以实现多态迭代,即不同的容器可以使用相同的遍历接口,而...

    java专题-迭代器

    1. **迭代器角色(Iterator)**:定义访问和遍历容器中元素的接口,通常包括`hasNext()`、`next()`和`remove()`等方法。 2. **具体迭代器角色(Concrete Iterator)**:实现迭代器接口,维护当前的遍历位置,并实现...

    深入浅出学习Java设计模式之迭代器模式[参考].pdf

    `java.util.Iterator`是迭代器角色的接口,它定义了`hasNext()`和`next()`方法,分别用于检查是否还有更多元素以及获取下一个元素。此外,还有一个`remove()`方法用于删除当前元素。通过调用`list.iterator()`,我们...

    迭代器模式代码示例

    在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以遍历集合中的每一个元素。 迭代器模式包含以下主要角色: 1. **迭代器接口(Iterator)**:定义了遍历集合...

    java迭代器

    文章目录java迭代器Iterator 迭代器接口迭代器的方法:next():返回迭代中的下一个元素。hasNext():如果迭代具有更多元素,则返回true。remove():从基础集合中移除迭代器返回的最后一个元素。使用foreach 循环遍历...

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

    在Java语言中,迭代器模式(Iterator Pattern)是一种行为型设计模式,它的主要目的是为了提供一种方法来访问一个容器对象中各个元素,而又不暴露该对象的内部细节。这种模式允许我们在不知道容器内部结构的情况下...

    IteratorPattern 迭代设计模式

    在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类库,如ArrayList、LinkedList等。 **迭代器模式的核心组成**: 1. **迭代器接口(Iterator Interface)**:定义了遍历元素的协议,包括获取下一个元素、...

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

    为了遵循面向接口编程的原则,通常会有容器接口和容器实现类,以及迭代器接口和迭代器实现类。 在迭代器模式的实现中,迭代器接口通常包含以下方法: 1. `hasNext()`: 检查是否还有更多元素可以遍历。 2. `next()`:...

    Java源码分析:深入探讨Iterator模式

    为了遍历这些容器中的元素,Java引入了迭代器模式(Iterator Pattern),这是一种常用的设计模式,它提供了一种访问聚合对象的方法,而无需暴露其内部表示。本文将详细解析Iterator模式在Java中的实现原理,并通过...

    iterator-demo 迭代器设计模式demo

    在Java、C#等面向对象语言中,迭代器模式被广泛应用于各种容器(如数组、列表、集合等)的遍历操作。 1. **模式角色**: - **迭代器(Iterator)**:定义了访问聚合对象的接口,通常包含`hasNext()`用于检查是否还有...

    设计模式之迭代器模式

    在Java中,`java.util.Iterator`接口定义了迭代器的基本方法,而`java.util.ArrayList`、`java.util.LinkedList`等集合类提供了`iterator()`方法返回迭代器实例。例如: ```java List&lt;String&gt; list = new ArrayList...

    设计模式的迭代器模式的例子

    在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以方便地遍历集合中的所有元素。 迭代器模式的主要组件包括: 1. **聚合对象(Aggregate)**:包含一组相关或...

    JAVA迭代器模式.pptx

    迭代器模式是Java设计模式中的重要组成部分,它不仅简化了容器的接口,隐藏了容器的实现细节,还提供了对容器元素的灵活访问方式。通过使用迭代器模式,可以提高代码的可读性和可维护性,同时也增强了系统的灵活性和...

    迭代器模式Demo

    迭代器模式是一种设计模式,它在软件工程中扮演着重要的角色,特别是在处理集合或容器类对象的遍历操作时。这种模式提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,...

Global site tag (gtag.js) - Google Analytics