• Java迭代器


    java迭代器就是提供一个方法对容器中各个对象进行访问,而又不暴露该对象该对象容器的内部实现细节。

    Java集合框架的集合类,我们有时候称之为容器。容器的种类有很多种,比如ArrayList,LinkedList,HashSet等等,每种容器都有自己的特点,ArrayList底层维护的是一个数组,LinkedList是链表的结构,HashSet依赖的是哈希表,每种容器都有自己特有的数据结构。

    因为容器的内部结构不同,很多时候可能不知道该怎么样去遍历一个容器中的元素。所以为了使对容器内元素的操作更为简单,Java引入了迭代器模式。

    1.1.1 Java.util.Iterator

    在Javak ,Iterator为一个接口,它只提供了迭代的基本规则。在JDK中它是这样定义的:对Collection进行迭代的迭代器。在迭代器取代了Java Collection Framework中的Enumeration。迭代器与枚举有两点不同:

    1.迭代器在迭代期间可以从集合中移除元素

    2.方法名得到了改进,Enumeration的方法名称都比较长。

    其接口定义如下:

    public interface Iterator<E> {
        boolean hasNext();
        E next();
        void remove();
    }
    

      2.Iterable

    Java中还提供了一个Iterable接口,Iterable接口实现后的功能是“返回”一个迭代器。我们常用的实现了该接口的子接口有:Collection<E>、List<E>、set<E>等。该接口的iterator()方法返回一个标准的Iterator实现。实现Iterable接口允许对象成为Foreach语句的目标。

    Iterable接口包含一个能产生Iterator对象的方法,并且Iterable被foreach用来在序列中移动。如果创建了实现Iterable接口的类,都可以将它用于foreach中。

    public interface Iterable<T> {
        Iterator<T> iterator();
    }
    

      

  • 相关阅读:
    JDK里的设计模式
    设计模式之注册表模式
    设计模式多线程方面之Thread-Per-Message 模式
    UML类图关系大全
    记大三开学的第一个月末
    【OC加强】NSDate的使用方法——日期时间在实际开发中比較有用
    iOS 多线程开发之OperationQueue(二)NSOperation VS GCD
    Cocos2d-x Layout简单使用
    POJ 1205 Water Treatment Plants(递推)
    Troubleshooting &quot;Global Enqueue Services Deadlock detected&quot; (Doc ID 1443482.1)
  • 原文地址:https://www.cnblogs.com/linwenbin/p/11724298.html
Copyright © 2020-2023  润新知