[工学]!!新_迭代器.pptVIP

  • 1
  • 0
  • 约6.72千字
  • 约 38页
  • 2018-03-28 发布于浙江
  • 举报
[工学]!!新_迭代器

数据结构与算法分析 第八章 迭代器 迭代器的基本概念 迭代器的接口 迭代器的实现 8.1 迭代器的基本概念 8.2 迭代器的接口 为什么需要定义迭代器的接口 客户类需要迭代器的功能是相同的 每个类可能对迭代器的各项功能的 命名存在差异 8.2 迭代器的接口 8.2 迭代器的接口 Java在包java.util中提供了两种迭代器的接口 Iterator:完成迭代器基本功能所需的方法(主要讲解) ListIterator:完成迭代器附加功能所需的方法(自学) 如双向遍历 修改数据集中元素 8.2 Iterator接口 Iterator接口简介 Iterator接口的定义 Iterator接口的使用 8.2.1 Iterator接口简介 Interator接口简介 是通用类型的接口:IteratorT 有三个方法 hasNext Next remove 8.2.2 Iterator接口的定义 package java.util; public interface Iterator T { /** Task: 测定迭代器是否完成遍历并越过数据集中最后一个元素 * @若迭代器遍历到还有另一个元素,则返回true */ public boolean hasNext (); /** Task: 提取集合中下一个元素并迭代前进一个位置 * @如果下一个元素存在,则返回其引用,若跌代到头,则返回false*/ public T next (); /** Task: 从数据集中删除next( )返回的最后一个元素 * Precondition: next( ) 已被调用并且remove( ) 尚未被调用 * @若迭代器不允许删除操作,则抛出UnsupportedOperationException */ public void remove (); } // end Iterator? 8.2.3 Iterator接口的使用 迭代器光标:用于指示数据集中元素的位置 光标的起始位置处于第一个元素之前 光标的合法位置 第一个元素之前 中间某个元素 最后一个元素 8.2.3 Iterator接口的使用 调用迭代器接口中hasNext方法的效果 8.2.3 Iterator接口的使用 调用迭代器接口中next方法的效果 8.2.3 Iterator接口的使用 调用迭代器接口中next方法的效果 8.2.3 Iterator接口的使用 调用迭代器接口中remove方法的效果 迭代器不允许删除操作,则抛出: UnsupportedOperationException异常 迭代器允许删除操作,则调用remove方法之前必须调用next方法 8.2.3 Iterator接口的使用 调用迭代器接口中remove方法的效果 8.2.3 Iterator接口的使用 调用迭代器接口中remove方法的效果 8.2.3 Iterator接口的使用 调用迭代器接口中remove方法的效果 8.2.3 Iterator接口的使用 Jamie Joey Rachel 8.3 迭代器的实现 迭代器的实现方式 独立类 内部类 8.3.1 以独立类方式实现迭代器 例子 线性表的实现中,没有考虑实现迭代器功能 设计独立类SeparateIterator实现线性表的迭代器功能 8.3.1 以独立类方式实现迭代器 基本结构 8.3.1 以独立类方式实现迭代器 独立类SeparateIterator public class SeparateIterator T implements Iterator T { private ListInterface T list; private int nextPosition; // next()最近返回的元素的位置 private boolean wasNextCalled; // 是否调用过next方法 public SeparateIterator (ListInterface T aList) {…} public boolean hasNext () { … } public T next () {…} public void remove () {… } } 8.3.1 以独立类方式实现迭代器 构造函数 hasNext方法 8.3.1 以

文档评论(0)

1亿VIP精品文档

相关文档