ADT-表

作者: 墨撒 | 来源:发表于2017-01-08 18:39 被阅读0次

    抽象数据类型abstract data type,ADT:带有一组操作的一些对象的集合

    表ADT

    1. 数组
    • 查询:花费常规时间O(1)
    • 插入、删除:O(N)或O(1),因为数组的项必须移动
      head tail
      1 2 4 5 6 7
      ^
      5 1 2 4 5 6 7
    1. 链表
    • 避免插入和删除的线性开销
    • 由一系列节点组成,这些节点在内存中不必相连。
    1. api


      Collection接口
    Iterator接口
    • 如果对正在被迭代的集合进行结构上的改变(即对该集合使用add/remove或clear方法),那么迭代器就不再合法(并且在其后使用该迭代器时会有ConcurrentModificationException异常被抛出),由增强for循环所使用的基础迭代器是非法的,我们不能期待增强的for循环懂得只有当一项不被删除时它才必须向前推进。合理的做法是,用迭代器找到需要满足条件的项时,使用该迭代器的remove方法。
      jdk8 Collection.removeIf(Predicate<? super E> filter)

    相关文章

      网友评论

          本文标题:ADT-表

          本文链接:https://www.haomeiwen.com/subject/gmpqbttx.html