Iterator设计模式--jdk1.7

参照:http://www.cnblogs.com/tstd/p/5049338.html

java.util.Iterator<E>是一个接口,它的定义如下:

public interface Iterator<E> {

    boolean hasNext();//是否还有元素

    E next();//下一个元素

    void remove();//将迭代器返回的元素删除
}

便利的方法:

Collection<String> collection = new ArrayList<String>();
collection.add("hello");
collection.add("java");

Iterator<String> iterator = collection.iterator();
while (iterator.hasNext()) {
     System. out.println(iterator.next());
}

原文地址:https://www.cnblogs.com/L-a-u-r-a/p/8541230.html

时间: 2024-11-02 10:38:31

Iterator设计模式--jdk1.7的相关文章

Iterator设计模式

面向对象编程思想中,多态是一个最重要的特性,代码灵活性的体现主要是靠这种思想来实现的.现在模拟Sun公司当中的两个集合类LinkedList和ArrayList.这些具体的容器,都可以用一个Collection的接口来接收.最常用的就是遍历容器,而现在不同的容器,遍历它们的具体实现是不同的,而我们可以将遍历的方法封装到一个接口Iterator当中,在这个接口当中实现hasNext()和next()的方法,再由具体的容器去实现它.而作为用户,只需要知道这个容器当中的两个方法就行了,具体的遍历实现,

Iterator 设计模式

package Iterator; import java.util.*; /**实现创建具体迭代器角色的接口, 这个具体迭代器角色与该容器的结构相关**/ public class ConcreteContainer implements Container { private Vector vector = null; public Vector getVector() { return vector; } public void setVector(Vector vector) { thi

给jdk写注释系列之jdk1.6容器(6)-HashSet源码解析&amp;Map迭代器

今天的主角是HashSet,Set是什么东东,当然也是一种java容器了. 现在再看到Hash心底里有没有会心一笑呢,这里不再赘述hash的概念原理等一大堆东西了(不懂得需要先回去看下HashMap了),需要在啰嗦一句的是hash表是基于快速存取的角度设计的,也是一种典型的空间换时间的做法(这个在分析HashMap中都有讲过).那么今天的HashSet它又是怎么一回事的,他的存在又是为了解决什么问题呢? 先来看下Set的特点:Set元素无顺序,且元素不可以重复. .想到了什么?无顺序,由于散列的

Java设计模式(二) 之 迭代器模式

源码均以JDK1.8作为参考 1.定义: Iterator提供一种方法访问一个容器对象中各个元素,而又不需要暴露对象的内部细节. 2.解析: 通用类图: 类图解析: 2.1.Iterator抽象迭代器 抽象迭代器负责定义通用的接口约定,基本都是基于JDK中Iterator接口的定义,源码如下: public interface Iterator<E> { boolean hasNext(); E next(); default void remove() { throw new Unsuppo

Java设计模式(三) 之 适配器模式

源码均以JDK1.8作为参考 1.定义: 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 2.解析: Adapter Pattern又称为Wrapper Pattern,提到Adapter Pattern,最先会想到的可能就是电源适配器,例如一台12V的电脑需要改到家用220V交流电源上使用,就需要使用交流电适配器,对电源进行转换. 在Java语言中,就是为了将现有类进行包装或适配来完成既有功能. 通用类图: 类图解析: 2.1.Cl

Java设计模式(四) 之 模板方法模式

源码均以JDK1.8作为参考 1.定义: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中.使得子类可以不改变一个算法的机构即可重定义该算法的某些特定步骤. 2.解析: 通用类图: 类图解析: 模板方法模式非常简单,仅仅使用了Java的继承机制,但它是一个应用非常广泛的模式. 2.1.抽象模板(AbstractClass) 主要定义了模板中一些基本操作(方法),它的方法分为两类: 基本方法: 基本方法也叫基本操作,是由子类实现的方法,并且被模板方法被调用. 模板方法: 可以由一个或几个,一般

Java设计模式(五) 之 工厂模式

源码均以JDK1.8作为参考 1.定义: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到子类. 2.解析: 可能乍一看Factory设计模式的定义有点晕,但是细想想Factory的字面含义,其实也是很好理解的,所谓工厂,就是按照指定的需求生产出一些产品,Factory设计模式也不例外,是按照提供给Factory的需求说明,然后Factory按照需求生产出指定的产品,供调用的应用场景使用. 通用类图: 类图解析: 2.1.Product(抽象产品类) 定义产品

给jdk写注释系列之jdk1.6容器(1):ArrayList源码解析

原文出自吞噬天地,链接整理自ImportNew 给jdk写注释系列之jdk1.6容器(2):LinkedList源码解析 给jdk写注释系列之jdk1.6容器(3):Iterator设计模式 给jdk写注释系列之jdk1.6容器(4)-HashMap源码解析 给jdk写注释系列之jdk1.6容器(5)-LinkedHashMap源码解析 给jdk写注释系列之jdk1.6容器(6)-HashSet源码解析&Map迭代器 给jdk写注释系列之jdk1.6容器(1):ArrayList源码解析 工作中

java.util之Iterable与Iterator

package java.lang; import java.util.Iterator; public interface Iterable<T> { Iterator<T> iterator();} Iterable位于java.lang包中,它持有一个Iterator引用 package java.util; public interface Iterator<E> { boolean hasNext(); E next(); void remove();} It